题目:长度最小的子数组
给定一个含有n个正整数的数组和一个正整数s,找出该数组中满足其和>=s的长度最小的连续子数组,并返回其长度。如果不存在符合条件的子数组,返回0。
思路: 利用滑动窗口,即双指针
滑动窗口:不断调节滑动窗口的起始位置和终止位置
代码实现:
利用一层for循环,用这个循环索引表示滑动窗口的终止位置
```java
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int result = Integer.MAX_VALUE;
int sum = 0;
int i=0;//子数组的开始位置
for(int j = 0; j< nums.length; j++){
sum += nums[j];
while(sum >= target){
result = Math.min(result,j - i + 1);
sum = sum - nums[i];
i++;
}
}
return result == Integer.MAX_VALUE ? 0 : result;
}
}