和为S的连续正数序列
vector<vector<int> > FindContinuousSequence(int sum) { vector<vector<int>> res; if(sum <3) return res ; int small = 1; int big = 2; int middle = (1+sum)/2; int curSum = small +big; vector<int> path; while(small <middle){ if(curSum == sum){ path.clear(); printfRes(path,small,big); res.push_back(path); } while((curSum > sum) && (small < middle)){ curSum -= small; small++; if(curSum == sum){ path.clear(); printfRes(path,small,big); res.push_back(path); } } big++; curSum += big; } return res; } void printfRes(vector<int> &res,int small,int big){ for(int i = small;i<=big;i++){ res.push_back(i); } }