209. 长度最小的子数组
209. 长度最小的子数组 - 力扣(Leetcode)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| import java.util.Scanner;
class MinimumSizeSubarraySum209 { public static void main(String[] args){ Scanner input = new Scanner(System.in); int[] arr = {2,3,1,2,4,3};
System.out.print("请输入 targetNum:"); int target = input.nextInt(); int minLen = minSubArrayLen(target,arr); if (minLen == 0) { System.out.println("\n没有找到"); } else { System.out.println("\n最小的子数组的长度为:" + minLen); } }
public static int minSubArrayLen(int target, int[] nums){ int res = Integer.MAX_VALUE; int left = 0,sum = 0; for (int right = 0;right < nums.length; right++) { sum += nums[right]; while ( sum >= target){ res = Math.min(res,right - left + 1); sum -= nums[left++]; } } return res == Integer.MAX_VALUE ? 0 : res; } }
|