leetcode-华为专题-剑指 Offer 57 - II. 和为s的连续正数序列

 

 

class Solution {
public:
    vector<vector<int>> findContinuousSequence(int target) {
        int n = target/2;
        int i = 1;
        int j = 1;
        int sum = 0;
        vector<vector<int>> res;
   
        while(i <= n){ // 注意以i为限制条件,不是以j,因为两个数之和,i最大为target/2;
            if(sum < target){
                sum = sum + j;
                j++;
            }else if(sum>target){
                sum = sum - i;
                i++;
            }else{
                vector<int> temp;
                for(int k = i; k <j; k++){
                    cout<<"k: "<<k<<endl;
                    temp.push_back(k);
                }
                cout<<"======"<<endl;
                sum = sum -i;
                i++;
                res.push_back(temp);
            }
        }
        return res;
    }
};

 

posted @ 2021-08-15 13:11  三一一一317  阅读(31)  评论(0)    收藏  举报