滑动窗口
在一个数组中,求他的一个子数组,满足一定的条件
这个子数组可以看成是一个窗口,这个窗口有左边界和有边界(类似于双指针),右边界正常移动,左边界满足一定条件之后,再移动
例如:
public int minSubArrayLen(int target, int[] nums) {
int left=0;
int right=0;
int min=nums.length+1;
int sum=0;
for(;right<nums.length;right++){
sum+=nums[right];
while(sum>=target){
min=Math.min(right-left+1,min);
sum-=nums[left];
left++;
}
}
return min==(nums.length+1)?0:min;
}
时间负复杂度
O(n)