采用滑动窗口算法
1.当窗口内的值的和小于target,窗口扩张(窗口扩张自然要加入扩张元素的值)
2.当窗口内的值的和大于target,窗口收缩(窗口收缩自然要减去被收缩元素的值)
3.当窗口内的值的和刚好等于target,把窗口内元素加入结果集中,继续收缩窗口
class Solution {
public int[][] findContinuousSequence(int target) {
int left=1;int right=1;
int midVal=target>>1;
int sum=0;
List<int[]> res=new ArrayList<>();
while(left<=midVal){
if(sum<target){
sum+=right;
right++;
}else if(sum>target){
sum-=left;
left++;
}else{
int arr[]=new int[right-left];
for(int i=left;i<right;i++){
arr[i-left]=i;
}
res.add(arr);
sum-=left;
left++;
}
}
return res.toArray(new int[res.size()][]);
}
}