和为S的连续正序列
【问题】小明很喜欢数学,有一天他在做数学作业时,要求计算出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的连续正序列的更多相关文章
- 剑指offer-第六章面试中的各项能力(和为S的两个数字VS和为S的连续正序列)
		题目1:输入一个排序数组和一个值S,输出数组中两个数的和为S的任意一对数. 思路:分别用两个指针指向数组的头start和尾end.如果两个数字之和等于S输出.如果打于,则end--,再次相加.因此循环 ... 
- 【编程题目】和为 n 连续正数序列
		51.和为 n 连续正数序列(数组).题目:输入一个正数 n,输出所有和为 n 连续正数序列.例如输入 15,由于 1+2+3+4+5=4+5+6=7+8=15,所以输出 3 个连续序列 1-5. 4 ... 
- 找出数组中最长的连续数字序列(JavaScript实现)
		原始题目: 给定一个无序的整数序列, 找最长的连续数字序列. 例如: 给定[100, 4, 200, 1, 3, 2], 最长的连续数字序列是[1, 2, 3, 4]. 小菜给出的解法: functi ... 
- 和为S的连续正数序列
		小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他就得到另一 ... 
- 26.打印所有和为S的连续正整数序列[FindContinuousSequencesWithSumS]
		[题目] 输入一个正数n,输出所有和为n连续正数序列.例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5.4-6和7-8. [分析] 这是网易的一道面试题.这道 ... 
- 剑指offer系列46---和为s的连续正数序列
		[题目]输出所有和为S的连续正数序列.序列为:1,2,3,4,5,6,7,8................ * 序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序 package com.e ... 
- 和为S的两个数字VS和为s的连续正数序列
		题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,输出任意一对即可. 例如输入数组1.2.4.7.11.15和数字15.由于4+11=15, ... 
- 【面试题041】和为s的两个数字VS和为s的连续正数序列
		[面试题041]和为s的两个数字VS和为s的连续正数序列 题目一: 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,输出任意一对即可. ... 
- 剑指Offer40 和为s的连续正数序列
		/************************************************************************* > File Name: 40_Contin ... 
随机推荐
- Redis Cluster 强制kill某一个节点和shutdown某一个节点后修复过程
			redis cluster 命令行,执行以下命令需登录cluster,是集群所独有的集群(cluster)CLUSTER INFO 打印集群的信息CLUSTER NODES 列出集群当前已知的所有节点 ... 
- GoJS实例3
			复制如下内容保存到空白的.html文件中,用浏览器打开即可查看效果 <!DOCTYPE html> <html> <head> <meta charset=& ... 
- 关于 vue.config.js 文件的配置
			相关文档: https://cli.vuejs.org/zh/config/#vue-config-js 
- 向量容器vector操作
			1.向量容器vector 1.1 vector说明 进行vector操作前应添加头文件#include<vector>: vector是向量类型,可以容纳许多类型的数据,因此也被称为容器: ... 
- java面试题汇总,不断更新中。。。
			JVM,并发,锁相关: 1.请你谈谈对volatile的理解,volatile是否存在伪共享问题. 2.cas你知道吗? 3.原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗? 4 ... 
- Python 必知的 20 个骚操作!
			以下为译文: Python 是一个解释型语言,可读性与易用性让它越来越热门. 正如 Python 之禅中所述: 优美胜于丑陋,明了胜于晦涩. 在你的日常编码中,以下技巧可以给你带来意想不到的收获. ... 
- SQL计算字符串里的子字符串出现个数
			在某个页面,需要显示每条记录中有几个图片文件.图片文件名列表存储在mysql表里的photo_files字段,文件名之间用一个空格分开.类似'images\rpt201503121.jpg image ... 
- apache端口修改为80
			apache端口莫名改变为443,访问网址失败,修改Apache端口: 1.打开目录(实际而定): C:\xampp\apache\conf 编辑httpd.conf 2.ctrl + f 搜索li ... 
- Unity Reflection Probe使用入门
			贴官方API的说法: 反射探头: 一个反射探头很像一个相机,捕获了周围所有方向的球形视图.然后将捕获的图像存储为Cubemap,可由具有反射材料的对象使用.在给定场景中可以使用多个反射探测器,可以将对 ... 
- 2020/2/21 fiyocms代码审计
			0x00 前言 上午上了网课,一上午就装好了cms,下午还有网课,要是结束的早就进行审计. 解决了一下phpstudy使用过程中: Forbidden You don't have permissio ... 
