和为s的连续正数序列(简单)
2020年9月10日
题目来源:力扣
解题
class Solution {
public int[][] findContinuousSequence(int target) {
List<int[]> res=new ArrayList<>();
int l=1,r=1,sum=0;
while(l<=target/2){
//如果窗口和小于目标和,窗口右边界往右移动
if(sum<target){
sum+=r;
r++;
}
//如果窗口和大于目标和,窗口左边界往左移动
else if(sum>target){
sum-=l;
l++;
}
//如果窗口和与目标和相等
else{
int[] tmp_res=new int[r-l];
for(int i=l;i<r;i++){
tmp_res[i-l]=i;
}
res.add(tmp_res);
sum-=l;
l++;
}
}
return res.toArray(new int[0][]);
}
}