NO41、和为S的连续整数序列(好题,再刷)

41、和为S的连续整数序列 再刷

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

9

返回值

[[2,3,4],[4,5]]

输出描述:

输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序
1、牛客解法,很厉害。类似于TCP滑动窗口
    vector<vector<int> > FindContinuousSequence(int sum) {
        vector<vector<int>> result;
        int low=1,high=2;//两个起点,相当于动态窗口的两边,根据其窗口内的值的和来确定窗口的位置和大小
        while(low<high){
            int sumTemp = (low+high) *(high-low +1)/2;
             //由于是连续的,差为1的一个序列,那么求和公式是(a0+an)*n/2
            if(sumTemp == sum){  //相等,那么就将窗口范围的所有数添加进结果集
                vector<int> resultTemp;
                for(int i=low;i<=high;++i)
                {resultTemp.push_back(i);}
                result.push_back(resultTemp);
                low++;
            }else if(sumTemp<sum){ //如果当前窗口内的值之和小于sum,那么右边窗口右移一下
                high++;
            }
            else{  //如果当前窗口内的值之和大于sum,那么左边窗口右移一下
                low++;
            }
        }
        return result;
    }
2、暴力解法
vector<vector<int> > FindContinuousSequence(int sum) {
    vector<vector<int> > result;
    for (int n = sqrt(2 * sum); n >= 2; --n) {

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

带你刷完67道剑指offer 文章被收录于专栏

- 本专栏汇集了67道剑指offer的一些精妙解法,不少题有5-6种解法之多,有些题目二刷三刷的解法也不一样。 - 本专栏帮助我拿到6个互联网大厂offer,最终圆梦字节跳动公司。

全部评论

相关推荐

xtu大迫杰:偶遇校友,祝校友offer打牌
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
正在热议
更多
# 面试被问到不会的问题,你怎么应对? #
141次浏览 2人参与
# 参加完秋招的机械人,还参加春招吗? #
119770次浏览 755人参与
# 米连集团26产品管培生项目 #
14147次浏览 288人参与
# 你觉得大几开始实习最合适? #
117次浏览 2人参与
# 拼多多工作体验 #
52267次浏览 332人参与
# 通信硬件知识分享 #
48068次浏览 537人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
17814次浏览 266人参与
# 找AI工作可以去哪些公司? #
15071次浏览 629人参与
# 说说你知道的学历厂 #
390882次浏览 1379人参与
# 从事AI岗需要掌握哪些技术栈? #
13315次浏览 715人参与
# 你做过最难的笔试是哪家公司 #
44545次浏览 632人参与
# 金三银四,你的春招进行到哪个阶段了? #
24129次浏览 295人参与
# 想给25届机械人的秋招建议 #
47665次浏览 251人参与
# AI面会问哪些问题? #
34077次浏览 953人参与
# 中国电信笔试 #
32968次浏览 303人参与
# 我心目中的理想工作是这样的 #
100808次浏览 907人参与
# 携程笔试 #
139500次浏览 839人参与
# 这些公司卡简历很严格 #
94900次浏览 415人参与
# 拼多多集团-PDD笔试 #
37427次浏览 358人参与
# 一人说一个提前实习的好处 #
118412次浏览 711人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
342650次浏览 2190人参与
# 实习越久越好,还是多多益善? #
91474次浏览 359人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务