【题目描述】
给定一个含有 n
个正整数的数组和一个正整数 target
。
找出该数组中满足其和 ≥ target
的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr]
,并返回其长度。如果不存在符合条件的子数组,返回 0
https://leetcode.cn/problems/minimum-size-subarray-sum/
【示例】
package com.company;
// 2022-02-06
import java.util.LinkedList;
import java.util.List;
class Solution {
List<LinkedList<Integer>> res = new LinkedList<>();
LinkedList<Integer> list = new LinkedList<>();
public int minSubArrayLen(int target, int[] nums) {
if (nums.length == 0) return 0;
int ans = Integer.MAX_VALUE;
for (int i = 0; i < nums.length; i++){
int sum = 0;
for (int j = i; j < nums.length; j++){
sum += nums[j];
if (sum >= target){
ans = Math.min(ans, j - i + 1);
break;
}
}
}
return ans == Integer.MAX_VALUE ? 0 : ans;
}
}
public class Test {
public static void main(String[] args) {
new Solution().minSubArrayLen(7, new int[]{2, 3, 1, 2, 4, 3}); // 输出:2
new Solution().minSubArrayLen(4, new int[]{1, 4, 4}); // 输出:1
new Solution().minSubArrayLen(11, new int[]{1, 1, 1, 1, 1, 1, 1, 1}); // 输出:0
}
}