class Solution { public int minSubArrayLen(int s, int[] nums) { // 初始化滑动窗口的左右指针和当前窗口内元素的和 int lo = 0, hi = 0, sum = 0, min = Integer.MAX_VALUE; // 遍历数组,移动右指针扩大窗口 while (hi < nums.length) { sum += nums[hi]; // 将右指针指向的元素加入窗口内元素之和 hi++; // 右指针向右移动 // 当窗口内元素之和大于等于目标值s时,尝试缩小窗口以找到最小长度 while (sum >= s) { min = Math.min(min, hi - lo); // 更新最小长度 sum -= nums[lo++]; // 移除左指针指向的元素并左指针向右移动 } } // 如果最小长度仍为初始值,说明没有找到满足条件的子数组,返回0;否则返回最小长度 return min == Integer.MAX_VALUE ? 0 : min; } }标签:min,209,sum,nums,力扣,int,hi,数组,指针 From: https://blog.csdn.net/2401_83010439/article/details/141873483