剑指offer41:所有和为S的连续正数序列,例如,有多少种连续的正数序列的和为100
1 题目描述
输出描述:
输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
2 思路和方法
类似于滑动窗口,初始定义两个指针指向small和big,当前和小于sum则big++扩张(左扩张),如果当前和大于sum,则要减小当前集合的总和,small++(右扩张)。且要判断small是否小于和的一半,此为终止条件。
vector<vector<int>> ret; s = (small+big)*(big-small+1)/2; vector<int> tmp; tmp.push_back(k); ret.push_back(tmp); return ret;
3 C++核心代码
 class Solution {
 public:
     vector<vector<int> > FindContinuousSequence(int sum) {
         int small = ;    // 正数序列,从1开始
         int big = ;
         int s;    // 当前和
         vector<vector<int>> ret;
         while(small<big){
             s = (small+big)*(big-small+)/;
             if (s<sum){
                 ++big;
             }
             else if (s > sum){
                 ++small;
             }
             else{
                 vector<int> tmp;
                 for(int k =small;k<=big;++k)
                     tmp.push_back(k);
                 ret.push_back(tmp);
                 ++big;
             }
         }
         return ret;
     }
 };
参考资料
https://blog.csdn.net/zjwreal/article/details/88910380
剑指offer41:所有和为S的连续正数序列,例如,有多少种连续的正数序列的和为100的更多相关文章
- 【剑指Offer面试编程题】题目1354:和为S的连续正数序列--九度OJ
		题目描述: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久, ... 
- 【剑指Offer面试编程题】题目1367:二叉搜索树的后序遍历序列--九度OJ
		题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 输入: 每个测试案例包括2行: 第一行为1个整数 ... 
- 【剑指Offer面试编程题】题目1366:栈的压入、弹出序列--九度OJ
		题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈 ... 
- 剑指Offer41 反转单词顺序,单词字符顺序不变
		/************************************************************************* > File Name: 41_Revers ... 
- 剑指offer--41.扑克牌顺子
		没有判断数组长度,导致{1,3,2,5,4}输出结果是false是什么鬼??? ------------------------------------------------------------ ... 
- 剑指Offer-41.和为S的连续正数序列(C++/Java)
		题目: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他就 ... 
- 【剑指Offer学习】【面试题22:栈的压入、弹出序列】
		题目:输入两个整数序列,第一个序列表示栈的压入顺序,请推断二个序列是否为该栈的弹出顺序.假设压入栈的全部数字均不相等. 解题思路: 解决问题非常直观的想法就是建立一个辅助栈.把输入的第一个序列中的数字 ... 
- 剑指Offer的学习笔记(C#篇)-- 和为S的连续正数序列
		题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他 ... 
- 剑指Offer的学习笔记(C#篇)-- 二叉搜索树的后序遍历序列
		题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 一 . 解题思想与二叉搜索树概念 (1). 二叉树 ... 
随机推荐
- RabbitMQ入门学习系列(四) 发布订阅模式
			发布订阅模式 什么时发布订阅模式 把消息发送给多个订阅者.也就是有多个消费端都完整的接收生产者的消息 换句话说 把消息广播给多个消费者 消息模型的核心 RabbitMQ不发送消息给队列,生产者也不知道 ... 
- ubuntu之路——day2
			一:sougou输入法安装 详情参考:https://blog.csdn.net/xin17863935225/article/details/82285177 注意切换成fcitx架构 因为linu ... 
- Cesium原理篇:Material【转】
			https://www.cnblogs.com/fuckgiser/p/6171245.html Shader 首先,在本文开始前,我们先普及一下材质的概念,这里推荐材质,普及材质的内容都是截取自该网 ... 
- 字节码(.class)文件的加载过程
			类加载 在Java代码中,类型的加载.连接与初始化过程都是在程序运行期间完成的. 类型可以是Class,Interface, 枚举等. Java虚拟机与程序的生命周期 在如下几种情况下,Java虚拟机 ... 
- nrm -- 一键切换npm源
			0. 背景 先描述一下没有nrm时我们是怎样使用npm源的 查看npm源地址,终端中输入 npm config list 可以看到npm源 metrics-registry = "https ... 
- api-ms-win-crt-runtime-l1-1-0.dll 丢失
			api-ms-win-crt-runtime就是MFC的运行时环境的库,python在windows上编译也是用微软的visual studio C++编译的,底层也会用到微软提供的C++库和runt ... 
- mysql的备份与还原,安装(window)
			之前一直使用的navicat的自动的备份功能.但是在使用navicat的还原功能时,贼慢. 今天要做的是window服务器上将mysql单个数据库备份.然后还原到我的mac笔记本上. 本来以为很快的, ... 
- [原][osg][OSGEARTH]OE的关闭打开自动计算裁剪面被OE的海洋ocean影响
			在osgEarthUtil 下 Ocean.cpp 的 traverse函数中: // we don't want the ocean participating in the N/F calcul ... 
- bat实现每天定时执行命令[windows底下每天重启一下Nginx]
			--试验通过--Windows环境脚本名称:restart.bat脚本内容: @echo offtaskkill /f /fi "IMAGENAME eq nginx.exe"cd ... 
- qt操作excel報錯解決
			如果電腦上沒有office,需要判斷,否则,会报错 onecore\com\combase\catalog\catalog.cxx()\combase.dll!00007FFF1DF823CB: (c ... 
