//其实还是双指针,当子序列之和小于sum,大指针加一;否则小指针加一
class Solution {
public:
    vector<vector<int> > FindContinuousSequence(int sum) {
        vector<vector<int>> res;
        int begin=1,end=2;
        while(begin<end){//子序列起始数为begin,末尾数为end
            int cur=(begin+end)*(end-begin+1)/2;//从begin加到end的和
            if(cur<sum)//当子序列和小于所求sum,末尾数end增1
                end++;
            else if(cur==sum){//当子序列和等于所求sum,将子序列按顺序依次放入val中
                    vector<int> val;
                    for(int i=begin;i<=end;i++){
                        val.push_back(i);
                    }
                    res.push_back(val);//每存好一个满足条件的子序列,即将其存入res中,并将子序列起始数begin增1
                    begin++;
                }
            else begin++;//当子序列和大于所求sum,将子序列起始数begin增1
        }
        return res;
    }
};