leetcode 209. 长度最小的子数组

Posted 如鹿~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.  双指针法

今天太累了,明天补上

以上是关于leetcode 209. 长度最小的子数组的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode:长度最小的子数组209

LeetCode 209. 长度最小的子数组 | Python

LeetCode 日记 209. 长度最小的子数组

leetcode 209. 长度最小的子数组

leetcode 209. 长度最小的子数组

leetcode 209. 长度最小的子数组