Menu
CoddyTech

Minimum Size Subarray Sum

给定一个正整数 target 和一个由正整数组成的数组 nums。请找出和至少为 target 的最短子数组(由相邻元素组成的一段),并返回它的长度。如果没有子数组的和达到 target,则返回 0。

函数

minSubArrayLen(target: integer, nums: integer-array) → integer
targetinteger
子数组必须达到或超过的总和
numsinteger-array
正整数数组
返回值integer
和至少为 target 的最短子数组的长度;如果不存在,则为 0

约束条件

  • 1 ≤ target ≤ 109
  • 1 ≤ nums.length ≤ 2 × 104
  • 1 ≤ nums[i] ≤ 104

示例

输入
target = 15nums = [4, 2, 9, 3, 7, 1, 5]
输出
3
解释
没有两个相邻数之和达到 15:最大的组合是 9 + 3 = 12。三个相邻数可以达到:4 + 2 + 9 = 15,9 + 3 + 7 = 19,所以答案是 3。
challenge icon

进阶

如果 nums 也可能包含零和负数,导致滑动窗口不再适用,你会如何解决这个问题?

重置代码
def minSubArrayLen(target, nums):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

target = 15
nums = [4, 2, 9, 3, 7, 1, 5]

预期输出

3