public int[][] findContinuousSequence(int target) {
// 滑动窗口
int i = 1;
int j = 2;
int sum = 3;
List<int[]> res = new ArrayList<>();
// i,j相遇即为出口
while(i < j) {
// 小于时 j往后走 并把j加上
if(sum < target) {
j++;
sum += j;
} else {
// 等于时 存入数组从i-j
if(sum == target) {
int[] ans = new int[j - i + 1];
for(int k = i; k <= j; k++) {
ans[k - i] = k;
}
res.add(ans);
}
// 大于等于时 先把i减掉 i往后走
sum -= i;
i++;
}
}
return res.toArray(new int[0][]);
}


被折叠的 条评论
为什么被折叠?



