滑动窗口-day02
209. 长度最小的子数组``
题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/description/
思路:得到子数组的长度最小,sum(子数组的和)>target;for循环的right变量作为结束指针,left作为左指针;
public int minSubArrayLen(int target, int[] nums) {
int left=0; //左指针
int sum=0; //滑动窗口中元素的和
int result=Integer.MAX_VALUE;//最大值
for(int right=0;right<nums.length;right++){//右指针
sum+=nums[right];//将数组中的值添加到sum中
while(sum>=target){//大于目标值
result=Math.min(result,right-left+1);//求最小的集合长度
sum-=nums[left++];//减去滑动窗口中最左侧的元素,左指针向右移动一位
}
}
return result==Integer.MAX_VALUE?0:result;//判断是否有符合的sum>=target
}

浙公网安备 33010602011771号