题目
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。
思想
滑动窗口
代码
class Solution {
private int res = Integer.MAX_VALUE;
public int minSubArrayLen(int s, int[] nums) {
if(nums == null)
return 0;
int left = 0;
int right = 0;
int sum = 0;
while(right < nums.length){
sum += nums[right];
while(left <= right && sum >= s){
res = Math.min(res,right - left + 1);
sum -= nums[left];
left++;
}
right++;
}
if(res == Integer.MAX_VALUE)
return 0;
return res;
}
}