題目描述
給定一個含有 n 個正整數的數組和一個正整數 s ,找出該數組中滿足其和 ≥ s 的長度最小的連續子數組,並返回其長度。如果不存在符合條件的連續子數組,返回 0。
輸入: s = 7, nums = [2,3,1,2,4,3]
輸出: 2
解釋: 子數組 [4,3] 是該條件下的長度最小的連續子數組。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/minimum-size-subarray-sum
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
算法思路
class Solution:
def minSubArrayLen(self, s: int, nums: List[int]) -> int:
MIN,n,i,j=float('inf'),0,0,0
while j<len(nums):
n+=nums[j]
while n>=s:
MIN=min(j-i+1,MIN)
n-=nums[i]
i+=1
j+=1
return 0 if MIN==float('inf') else MIN