题目描述
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。示例:
输入: s = 7, nums = [2,3,1,2,4,3]
输出: 2
解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。
思路补充:
用滑动窗口方法;双指针法
解决方法
1. 滑动窗口
class Solution: def minSubArrayLen(self, s: int, nums: List[int]) -> int: n = len(nums) min_len = n cur_len = 0 sums = 0 l = 0 for i in range(n): cur_len += 1 sums += nums[i] while sums >= s: min_len = min(cur_len, min_len) sums -= nums[l] cur_len -= 1 l += 1 if cur_len == n and sums < s: return 0 return min_len2. 双指针法
今天太累了,明天补上