题目:
class Solution {
public:vector<vector<int>> findContinuousSequence(int target) { //本题使用滑动窗口(双指针)int i=1, j=1; //定义左右边界,一般是左闭右开int sum=0; //窗口内的和vector<vector<int>> result;while(i<=target/2){ //左边界最大为target/2if(sum<target){ //sum小于target,加上j后右边界右移sum+=j;j++;}else if(sum>target){ //sum超过target,减去i后左边界右移sum-=i;i++;}else{vector<int> vec; //sum等于target,记录序列for(int k=i;k<j;k++){vec.push_back(k);}result.push_back(vec);sum-=i; //记录后左边界右移i++;}}return result;}
};
作者:nettee
链接:详细题解
来源:力扣(LeetCode)