//其实还是双指针,当子序列之和小于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;
}
};