/*
思路: 设立一个sum 记录当前总和 minLen表示最小长度;
当sum 大于s时 把长度与minLen比较 小的存入minLen中;
再把sum中的最前端得数减掉 一直到循环结束 以此来得到最小长度;
*/
class Solution {
public int minSubArrayLen(int s, int[] nums) {
if(nums == null || nums.length == 0) return 0;
int start = 0, sum = 0, minLen = nums.length + 1;
for(int i = 0; i < nums.length; i++) {
sum += nums[i];
while(sum >= s) {
minLen = Math.min(i - start + 1, minLen);
sum = sum - nums[start];
start++;
}
}
return minLen == nums.length + 1 ? 0 : minLen;
}
}
Minimum Size Subarray Sum
最新推荐文章于 2020-07-31 16:43:55 发布