滑动窗口是用两个指针来维持一个窗口,并通过相应策略来更新窗口的一种解题思路
1.和为S的连续正数序列:(如果S=100,则18,19,20,21,22为其中一个序列)
public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
ArrayList<ArrayList<Integer> res = new ArrayList<>();
int i = 1,j = 1;
int window = 1;
while(i <= j){
if(window == sum){
ArrayList<Integer> temp = new ArrayList<>();
for(int k = i;k <= j;k ++){
temp.add(k);
}
res.add(temp);
window -= i;
i ++;
j ++;
window += j;
}else if(window < sum){
j ++;
window += j;
}else{
window -= i;
i ++;
}
}
return res;
}
2.无重复字符的最