from collections import deque
class Solution(object):
def minSubArrayLen(self, target, nums):
"""
:type target: int
:type nums: List[int]
:rtype: int
"""
l,r = 0,0 # l是区间左边指针,r是区间右边指针
res = len(nums)+1
mytarget = 0
for r in range(len(nums)):
mytarget += nums[r] # 求累加和
while (mytarget>=target): # 如果大于target, 开始把左边的指针l右移
res = min(res, (r-l +1)) # 从[l,r]区间内的数字个数为r-l+1
mytarget -= nums[l] # 减去左边的数字
l += 1
return res if res<= len(nums) else 0