题目链接:LeetCode 209—Minimum Size Subarray Sum
题目大意:求出正整数无序序列中长度最小的子序列的元素和等于目标数,如果没有这样的数,则返回0。
实现代码:
public class Problem209 {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public int minSubArrayLen(int s, int[] nums) {
if( nums == null || nums.length == 0 ) return 0;
int left = 0;
int sum = 0;
int minLength = Integer.MAX_VALUE;
for(int right = 0; right<nums.length; right++) {
sum+=nums[right];
while(sum>=s) {
minLength = Math.min(minLength,right-left+1);
sum-=nums[left];
left++;
}
}
return minLength == Integer.MAX_VALUE?0:minLength;
}
}