力扣算法题之《209. 长度最小的子数组》
class Solution {
public int minSubArrayLen(int target, int[] nums) {
// 排除空数组影响
if(nums.length==0)return 0;
// 排除小数组影响,即数组总和小于目标值
if(Arrays.stream(nums).sum() < target)return 0;
int temp = 0;
int ans = Integer.MAX_VALUE;
int left = 0, right = 0;
// 最终状态1:右指针移动到末尾
while(right < nums.length){
temp += nums[right];
while(temp >= target){
ans = Math.min(ans, right - left +1);
temp -= nums[left++];
}// 最终状态2:temp<target,回到上一层while循环
right++;
}
return ans;
}
}