标签:
Given an array of n positive integers and a positive integer s, find the minimal length of a subarray of which the sum ≥ s. If there isn‘t one, return 0 instead.
For example, given the array [2,3,1,2,4,3]
and s = 7
,
the subarray [4,3]
has the minimal length under the problem constraint.
思路:经典的滑动窗口。右指针向右移动,如果和大于sum,记录size,比较是否存入min。然后将左指针右移,继续判断。
public class Solution { public int minSubArrayLen(int s, int[] nums) { if(nums.length==0) { return 0; } int i=0,j=0,sum=0; int min=Integer.MAX_VALUE; while(j<nums.length) { sum+=nums[j]; while(sum>=s) { min=Math.min(min,j-i+1); sum-=nums[i]; i++; } j++; } if(min==Integer.MAX_VALUE) { return 0; } return min; } }
209. Minimum Size Subarray Sum
标签:
原文地址:http://www.cnblogs.com/Machelsky/p/5912610.html