public class Eight{ public static void main(String[] args){ System.out.println(minSubArrayLen(7, new int[]{2,3,1,2,4,3})); }
//s > 0, and any element in nums are bigger than zero public static int minSubArrayLen(int s, int[] nums){ if (nums == null || nums.length == 0){ return 0; }
int length = 0; int sum = 0; int leftPos = 0; int rightPos = 0; while (rightPos <= nums.length){ if (sum >= s){ length = length == 0 ? rightPos - leftPos : Math.min(length, rightPos - leftPos); sum -= nums[leftPos++]; }else{ if (rightPos == nums.length){ break; } sum += nums[rightPos++]; } }
近期评论