题解 | #和为S的连续正数序列#

和为S的连续正数序列

http://www.nowcoder.com/practice/c451a3fd84b64cb19485dad758a55ebe

public:
    vector<vector<int> > FindContinuousSequence(int sum) {
        int l=1,r=1;
        int temp=0;
        vector<vector<int> >ret;
        while(l<=sum/2){//只需要满足一半就够了
            if(temp<sum){
                temp+=r;//小于sum,右指针向右移
                r++;
            }
            else if(temp>sum){//如果数比sum大,左指针向右移
                temp-=l;
                l++;
            }
            else{
                vector<int>ans;
                for(int i=l;i<r;i++){//相等就放入ans中
                    ans.push_back(i);
                }
                temp-=l;
                l++;//左指针开始向右移
                ret.push_back(ans);
            }
        }
        return ret;
    }
};
全部评论

相关推荐

2025-12-05 18:09
已编辑
广东药科大学 后端工程师
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务