Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn't one, return 0 instead.
Example:
Input:[2,3,1,2,4,3],
s = 7
Output: 2 Explanation: the subarray[4,3]
has the minimal length under the problem constraint.
1 class Solution { 2 public int minSubArrayLen(int target, int[] a) { 3 if(a.length==0||a.length==1) 4 return 0; 5 int i = 0,j = 0,sum =0 ,min = Integer.MAX_VALUE; 6 while(j<a.length){ 7 sum+=a[j++]; 8 while(sum>=target){ 9 min = Math.min(min,j-i); 10 sum-=a[i++]; 11 } 12 } 13 return min==Integer.MAX_VALUE?0:min; 14 } 15 16 }