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

和为S的连续正数序列

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

#include <vector>
class Solution {
public:
    vector<vector<int> > FindContinuousSequence(int sum) {
        vector<vector<int>> ans;
        for(int i=2;sum/i>=i/2;i++){
            if(i%2==1){
                if(sum%i==0){
                    vector<int> t;
                    bool b=true;
                    for(int j=sum/i-i/2;j<=sum/i+i/2;j++){
                        t.push_back(j);
                        if(j==0){
                            b=false;
                            break;
                        }
                    }
                    if(b){
                        ans.push_back(t);
                    }
                }
            }
            else{
                if((i/2+sum)%i==0){
                    vector<int> t;
                    for(int j=sum/i-i/2+1;j<=sum/i+i/2;j++){
                        t.push_back(j);
                    }
                    ans.push_back(t);
                }
            }
        }
        vector<vector<int>> a;
        for(int i=ans.size()-1;i>=0;i--){
            a.push_back(ans[i]);
        }
        return a;
    }
};

全部评论

相关推荐

one_t:硕还是本?什么岗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务