leetcode 209. 长度最小的子数组

题目描述

给定一个含有 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_len

2.  双指针法

今天太累了,明天补上
上一篇:523. Continuous Subarray Sum 起止点是K的倍数


下一篇:leetcode1403