题目描述
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。
示例:
输入: s = 7, nums = [2,3,1,2,4,3]
输出: 2
解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。
思路
代码
class Solution:
def minSubArrayLen(self , s:int , nums) -> int:
n = len(nums)
l = 1
res = float("inf")
tmp = 0
for r in range(n):
tmp += nums[r]
while(tmp >= s ):
res = min(res , r-l+1)
tmp -= nums[l]
l += 1
return res if(res!=float("inf")) else 0
test = Solution()
test.minSubArrayLen(7,[2,3,1,2,4,3])