当前位置: 首页 > 图灵资讯 > 技术篇> LeetCode程序员面试金典:长度最小的子数组

LeetCode程序员面试金典:长度最小的子数组

来源:图灵教育
时间:2023-06-17 13:53:13

1.简述:

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

找出这个数组中的满足感 ≥ target 最小长度 连续子数组[numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果没有合格的子数组,则返回 0 。

示例 1:

输入:target = 7, nums = [2,3,1,2,4]

输出:2

说明:子数组[4,3]是这种情况下长度最小的子数组。

示例 2:

输入:target = 4, nums = [1,4,4]

输出:1

示例 3:

输入:target = 11, nums = [1,1,1,1,1,1,1,1,1

输出:0

2.实现代码:

class Solution {    public int minSubArrayLen(int s, int[] nums) {        int n = nums.length;        if (n == 0) {            return 0;        }        int ans = Integer.MAX_VALUE;        for (int i = 0; i < n; i++) {            int sum = 0;            for (int j = i; j < n; j++) {                sum += nums[j];                if (sum >= s) {                    ans = Math.min(ans, j - i + 1);                    break;                }            }        }        return ans == Integer.MAX_VALUE ? 0 : ans;    }}