【LeeCode】209.长度最小的子数组

时间:2023-02-07 07:18:23

【题目描述】

给定一个含有 ​​n​ 个正整数的数组和一个正整数 ​​target​ 。

找出该数组中满足其和 ​≥ target​ 的长度最小的 连续子数组 ​​[numsl, numsl+1, ..., numsr-1, numsr]​​ ,并返回其长度如果不存在符合条件的子数组,返回 ​​0​​ 

​​​​https://leetcode.cn/problems/minimum-size-subarray-sum/​


【示例】

【LeeCode】209.长度最小的子数组

【代码】​​暴力​

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
}
}