和为S的连续正数序列(双指针详解)

题目解析:

  题目是小明算数,这里不赘述!->题目链接<-
  看到这道题目的可以马上想到等差数列,这个题目可以换一种说法就是求有多少个等差数列的和为sum,可以直接用公式计算,但是公式计算个人感觉有一些复杂,觉得使用双指针更好一些,类似于TCP中的滑动窗口,根据窗口中的数值的和来确定窗口的位置和宽度,大了就向右缩小窗口,小了就向右扩大窗口,相等了就向右缩小一个位置,继续之前的比较。当窗口缩小到没有了,说明窗口之后的等差数列的和都是大于sum的,就可以结束查找了。

图解思路:

在这里插入图片描述

代码解析:

  说了这么多,大概代码也已经想出来了!

class Solution {
public:vector<vector<int> > FindContinuousSequence(int sum) {//存放返回值vector<vector<int> >ret;int pRight = 2, pLeft = 1;while(pRight > pLeft){//计算窗口中数值的和int tmp = (pRight + pLeft)*(pRight-pLeft+1)/2;//如果窗口中的和比sum小,窗口向右扩大if(tmp < sum)pRight++;//如果窗口中的和比sum大,窗口向左缩小else if(tmp > sum)pLeft++;//否则窗口中的和与sum一样大,将窗口中的值保存到ret中else{vector<int> arr;for (int i = pLeft; i <= pRight; ++i){arr.push_back(i);}ret.push_back(arr);//这里强调要移动窗口的左边框,不能是窗口的右边框//因为右边的值较大,移动有边框可能会跳过一个符合条件的等差数列pLeft++;}}return ret;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494890.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python面试题大全(三):Web开发(Flask、爬虫)

目录 Web Flask 140.对Flask蓝图(Blueprint)的理解&#xff1f; 141.Flask 和 Django 路由映射的区别&#xff1f; Django 142.什么是wsgi,uwsgi,uWSGI? 143.Django、Flask、Tornado的对比&#xff1f; 144.CORS 和 CSRF的区别&#xff1f; 145.Session,Cookie,JWT的…

七大科技巨头的最新人工智能布局

来源&#xff1a;资本实验室摘要&#xff1a;近几年&#xff0c;全球人工智能技术的发展与应用突飞猛进。近几年&#xff0c;全球人工智能技术的发展与应用突飞猛进。例如&#xff0c;各大公司的自主驾驶汽车测试如火如荼&#xff0c;许多人每天都在家里使用像Alexa这样的人工智…

SilverLight之我见

SliverLight 是微软公司全力打造的一种跨平台&#xff0c;跨浏览器的RIA新技术&#xff0c;SilverLight以XAML为界面呈现语言&#xff0c;支持2D图形&#xff0c;文字&#xff0c;动画&#xff0c;数据双向绑定&#xff0c;控件风格与模板&#xff0c;Linq,WCF&#xff0c;JSON…

Python面试题大全(四):数据库篇

目录 数据库 MySQL 198.主键 超键 候选键 外键 199.视图的作用&#xff0c;视图可以更改么&#xff1f; 200.drop,delete与truncate的区别 201.索引的工作原理及其种类 202.连接的种类 203.数据库优化的思路 204.存储过程与触发器的区别 205.悲观锁和乐观锁是什么&am…

有史以来最精彩的自问自答:OpenAI 转方块的机械手

机械手任务之三 - 转鸡蛋&#xff0c;示意图来源&#xff1a;AI 科技评论摘要&#xff1a;今年 2 月&#xff0c;OpenAI 发起了一组机械手挑战&#xff0c;他们在基于 MuJoCo 物理模拟器的 Gym 环境中新设计了含有机械臂末端控制、机械手拿取物体的两组八个有难度的、早期强化学…

寻找两个有序数组的中位数(虚拟数组图文详解)

思路一&#xff08;暴力&#xff09;&#xff1a; 当看到这个题目的时候可能会觉的是不是系统高估了这个题目&#xff0c;这个这么简单&#xff0c;只需要将两个数组合并&#xff0c;排序然后合并就好了。这样做确实可以求出中位数&#xff0c;但是并不能说是完成题目的要求&am…

uva540

题目的意思大概就是现在让你做一个数据结构&#xff0c;具体的应该是一个队列&#xff0c;有一堆元素&#xff0c;这堆元素拥有两个特性&#xff0c;一是它的值&#xff0c;二是它所在的team值。这个队列满足以下的一些性质&#xff08;操作&#xff09;。 ENQUEUE(k) &#xf…

Python面试题大全(五):测试、大数据、数据结构、架构

目录 测试 213.编写测试计划的目的是 214.对关键词触发模块进行测试 215.其他常用笔试题目网址汇总 216.测试人员在软件开发过程中的任务是什么 217.一条软件Bug记录都包含了哪些内容&#xff1f; 218.简述黑盒测试和白盒测试的优缺点 219.请列出你所知道的软件测试种类…

【决策】Waymo无人出租车年底发射,现已进入定价环节 | 公交部门竟成友军?...

开车栗 发自 凹非寺量子位 出品 | 公众号 QbitAI按照Waymo的计划&#xff0c;今年年底之前&#xff0c;他们的无人出租车服务就要进入市场了。现在&#xff0c;无人的士已进入了定价环节&#xff0c;紧张刺激。Waymo希望从此开始&#xff0c;人类能一点一点抛弃私家车&#xff…

盘点那些具有“爆款”潜力的智能家居产品

来源&#xff1a;OFweek 摘要&#xff1a;智能家居已经火了有一段时间&#xff0c;然而目前真正普及的家庭并不多。从长远来看&#xff0c;智能家居是一种更环保、智能、舒适、安全的人居环境&#xff0c;它涉及物联网、人工智能等相关技术&#xff0c;是人们理想的一种生活方式…

圆圈中最后剩下的数字

题目&#xff1a;n个数字&#xff08;0,1,…,n-1&#xff09;形成一个圆圈&#xff0c;从数字0开始&#xff0c;每次从这个圆圈中删除第m个数字&#xff08;第一个为当前数字本身&#xff0c;第二个为当前数字的下一个数字&#xff09;。当一个数字删除后&#xff0c;从被删除数…

TCP/IP校验和(浅析+实例)

校验和的作用   按照协议的规定&#xff0c;报文到达每一层&#xff0c;首先验证校验和是否正确&#xff0c;丢弃掉不正确的报文&#xff0c;再才会进行后续操作。  那么校验和是怎么计算的呢&#xff1f;  校验和的计算方法(以 IP 首部中的校验和为例) 方法是计算16位的二…

4位数学家获得2018年菲尔兹奖

来源&#xff1a;科学网2018年菲尔兹奖8月1日在巴西里约热内卢市举行的第28届国际数学家大会上揭晓&#xff0c;获奖者为伊朗裔数学家Caucher Birkar、意大利数学家Alessio Figalli、德国数学家Peter Scholze&#xff0c;以及印澳裔数学家Akshay Venkatesh。4位获奖者对数学领域…

ASP.NET GridView控件在列上格式化时间

症状&#xff1a;在GridView绑定日期格式的时候&#xff0c;数据库中的日期为2008-07-04&#xff0c;而GridView显示的是2007-07-04 000000。、 解决办法&#xff1a;想把这后面这多余的零去掉的话在绑定时间的那一列源码后面加上一句话就可以了&#xff0c;如下红色的部分 <…

spark-submit 参数设置

在使用spark时&#xff0c;根据集群资源情况和任务数据量等&#xff0c;合理设置参数&#xff0c;包括但不限于以下&#xff1a; 参数说明masteryarn E-MapReduce 使用 Yarn 的模式yarn-client&#xff1a;等同于 –-master yarn —deploy-mode client&#xff0c; 此时不需要…

科学研究发现,盲人用时间感知空间

来源&#xff1a;中国科学报摘要&#xff1a;在书籍和电影中&#xff0c;盲人通常用超敏感的听力帮助他们在现实世界中穿梭。在书籍和电影中&#xff0c;盲人通常用超敏感的听力帮助他们在现实世界中穿梭。但是&#xff0c;8月1日发表在iScience杂志上的一项研究表明&#xff0…

SharePoint创建web application的时候报错

今天在SharePoint Server上创建一个web application的时候报错了。 The password supplied with the username ***\*** was not correct. Verify that it was entered correctly and try again. 我之前是改过administrator的密码,但确实用stsadm.exe -o updatefarmcredentials…

传输层(学习笔记)

传输层基本概念&#xff1a; 传输层负责端与端之间的数据传&#xff0c;主要有两大知识点&#xff1a;TCP和UDP 五元组 在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过netstat -n查看); 端口号范…

随机读写 vs 顺序读写

磁盘是如何存储数据的&#xff1f; 信息存储在硬盘里&#xff0c;把它拆开也看不见里面有任何东西&#xff0c;只有些盘片。假设&#xff0c;你用显微镜把盘片放大&#xff0c;会看见盘片表面凹凸不平&#xff0c;凸起的地方被磁化&#xff0c;凹的地方是没有被磁化&#xff1b…