素材巴巴 > 程序开发 >

长度最小的子数组代码详解

程序开发 2023-09-07 17:49:29

209. 长度最小的子数组

题目:

给定一个含有 n 个正整数的数组和一个正整数 target
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子数组,返回 0

解题思路:滑动窗口的思想

​ 就是不断调节窗口的起始位置和结束位置:

在这里插入图片描述

class Solution:def minSubArrayLen(self, s: int, nums: List[int]) -> int:res = float("inf")   # 定义一个无限大的数Sum = 0     # 滑动窗口数值之和i = 0      # 滑动窗口起始位置for j in range(len(nums)):Sum += nums[j]while Sum >= s:res = min(res, j-i+1)Sum -= nums[i]i += 1return 0 if res == float("inf") else res
 

标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。