LEETCODE | PYTHON | 209 | 长度最小的子数组
1. 题目
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/minimum-size-subarray-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 代码
class Solution:
def minSubArrayLen(self, target: int, nums: List[int]) -> int:
res = float('inf')
index = 0
Sum = 0
for i in range(len(nums)):
Sum = Sum+nums[i]
while Sum>=target:
res = min(res,i-index+1)
Sum = Sum-nums[index]
index = index+1
return 0 if res==float('inf') else res
3. 相关知识
(1) 采用滑动窗口
(2) 窗口内始终是大于target的最小连续数组