【问题】小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!

【思路】我们可以使用双指针来进行表示一个连续正数序列的边界,然后根据等差数列的公式:sum = (begin+end)*N/2 ,当我们求得一个正数序列的和sum后,如果sum大于目标数值,我们让begin向右移动,如果小于目标数值,则让end向右移动,最终的最终,两个指针都会指到同一位置,即目标数值,从而退出循环!当等于目标时,我们将[begin, end]中的所有数存入数组中即可!

class Solution {
public:
vector<vector<int> > FindContinuousSequence(int sum) {
vector<vector<int>> res;
vector<int> tmp;
int pLow = , pHigh = ;
while(pHigh > pLow){
int sum_list = (pHigh + pLow)*(pHigh-pLow+)/;
if(sum_list == sum){
for(int i = pLow;i <= pHigh;i++){
tmp.push_back(i);
}
res.push_back(tmp);
tmp.clear(); // 将tmp清空
pLow++;
}
else if(sum_list < sum){
pHigh++;
}else{
pLow++;
}
}
return res;
}
};

和为S的连续正序列的更多相关文章

  1. 剑指offer-第六章面试中的各项能力(和为S的两个数字VS和为S的连续正序列)

    题目1:输入一个排序数组和一个值S,输出数组中两个数的和为S的任意一对数. 思路:分别用两个指针指向数组的头start和尾end.如果两个数字之和等于S输出.如果打于,则end--,再次相加.因此循环 ...

  2. 【编程题目】和为 n 连续正数序列

    51.和为 n 连续正数序列(数组).题目:输入一个正数 n,输出所有和为 n 连续正数序列.例如输入 15,由于 1+2+3+4+5=4+5+6=7+8=15,所以输出 3 个连续序列 1-5. 4 ...

  3. 找出数组中最长的连续数字序列(JavaScript实现)

    原始题目: 给定一个无序的整数序列, 找最长的连续数字序列. 例如: 给定[100, 4, 200, 1, 3, 2], 最长的连续数字序列是[1, 2, 3, 4]. 小菜给出的解法: functi ...

  4. 和为S的连续正数序列

    小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他就得到另一 ...

  5. 26.打印所有和为S的连续正整数序列[FindContinuousSequencesWithSumS]

    [题目] 输入一个正数n,输出所有和为n连续正数序列.例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5.4-6和7-8. [分析] 这是网易的一道面试题.这道 ...

  6. 剑指offer系列46---和为s的连续正数序列

    [题目]输出所有和为S的连续正数序列.序列为:1,2,3,4,5,6,7,8................ * 序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序 package com.e ...

  7. 和为S的两个数字VS和为s的连续正数序列

    题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,输出任意一对即可. 例如输入数组1.2.4.7.11.15和数字15.由于4+11=15, ...

  8. 【面试题041】和为s的两个数字VS和为s的连续正数序列

    [面试题041]和为s的两个数字VS和为s的连续正数序列 题目一:     输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,输出任意一对即可. ...

  9. 剑指Offer40 和为s的连续正数序列

    /************************************************************************* > File Name: 40_Contin ...

随机推荐

  1. vue 加载静态图片

    <img class="headImg" :src="require('../../assets/uploads/'+headImg)" alt=&quo ...

  2. H5易企秀

    周末被领导叫回来加班,说要做一个易企秀一样的页面,然后就有这篇笔记 原计划用几百个计时器去执行,后面放弃了,太难改了,还是选择了animate.css插件,这是一个纯css的插件,只需要引入css就行 ...

  3. AS3.0判断数组中最大值

    function getMax(Arr) { if (typeof Arr !="object") {     return null;  }  for (var i=0,max= ...

  4. leetcode1143 Longest Common Subsequence

    """ Given two strings text1 and text2, return the length of their longest common subs ...

  5. nodejs —— 流追加数据

                        在写入流的文档后添加   ,{ 'flags': 'a' }   即可  :   var fs = require('fs') var readerStream ...

  6. linux解决端口冲突问题

    # 查看9000这个端口是否被使用 netstat -lnt | grep 9000 -l       显示正在被监听(listen)的端口 -n     表示直接显示端口数字 -t      表示的 ...

  7. Android Studio 移动虚拟机

    突然间发现C盘 空间占用量增加了很多,经过找寻原因之后发现是因为安装了虚拟机的原因:在Android Studio中安装运行虚拟机时,默认的安装路径一般都在C盘,对于我这种不喜欢C盘存储太满的人来说是 ...

  8. require(): open_basedir restriction in effect. File(/www/wwwroot/xcx/zerg/thinkphp/start.php) is not within the allowed path(s): (/www/wwwroot/xcx/zerg/public/:/tmp/:/proc/) in /www/wwwroot/xcx/zerg/p

    解决方法: 在如下文件增加一项(如图所示) 在如下文件增加一项(如图所示): #php文件采用fastcgi解析并设置参数    location ~ \.php {        try_files ...

  9. vim 好用的插件

    1  切换文件   使用buffer   这里可以安装一个  minibufExplorer https://github.com/huanglongchao/minibufexpl.vim 2 在项 ...

  10. JDBC获取数据库连接慢

    RHEL6.4 获取Oracle数据库链接时快时慢,RHEL7.3获取Oracle数据库链接时一直很慢能够达到五万毫秒. 解决方法: 修改$JAVA_HOME/jre/lib/security/jav ...