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. 长度最小的子数组的主要内容,如果未能解决你的问题,请参考以下文章