1 """
2 Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn't one, return 0 instead.
3 Example:
4 Input: s = 7, nums = [2,3,1,2,4,3]
5 Output: 2
6 Explanation: the subarray [4,3] has the minimal length under the problem constraint.
7 """
8 """
9 滑动窗口,与leetcode713类似
10 """
11 class Solution:
12 def minSubArrayLen(self, s: int, nums):
13 _sum = 0
14 res = len(nums) + 1
15 i = 0
16 for j in range(len(nums)):
17 _sum += nums[j]
18 while _sum >= s: #!!!
19 res = min(res, j-i+1)
20 _sum -= nums[i]
21 i += 1
22 return res if res <= len(nums) else 0