Minimum Size Subarray Sum
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.
public class Solution {
public int minSubArrayLen(int s, int[] nums) {
int min_len =Integer.MAX_VALUE;
int sum =0;
for(int i=0;i<nums.length;i++){
if(nums[i] >=s)
return 1;
sum = nums[i];
for(int j=i-1;j>=0;j--){
sum+=nums[j];
if(sum >=s || (i-j+1)>=min_len){
min_len = min_len <(i-j+1)?min_len:(i-j+1);
break;
}
}
}
if(min_len == Integer.MAX_VALUE)
min_len = 0;
return min_len;
}
}
public class Solution {
public int minSubArrayLen(int s, int[] nums) {
int min_len =Integer.MAX_VALUE;
int sum =0;
for(int i=0;i<nums.length;i++){
if(nums[i] >=s)
return 1;
sum = nums[i];
for(int j=i-1;j>=0;j--){
sum+=nums[j];
if(sum >=s || (i-j+1)>=min_len){
min_len = min_len <(i-j+1)?min_len:(i-j+1);
break;
}
}
}
if(min_len == Integer.MAX_VALUE)
min_len = 0;
return min_len;
}
}