class Solution(object):
def minSubArrayLen(self, target, nums):
"""
:type target: int
:type nums: List[int]
:rtype: int
"""
left = 0
right = 0
min_len = 100000
sum = nums[0]
while sum < target and right < len(nums) - 1:
right += 1
sum += nums[right]
if right == len(nums) - 1 and sum <target:
return 0
min_len = min(min_len, right - left + 1)
while right <= len(nums) - 1:
if right < len(nums) - 1:
right += 1
sum += nums[right]
while sum >= target:
sum -= nums[left]
left += 1
left -= 1
sum += nums[left]
min_len = min(min_len, right - left + 1)
if right == len(nums) - 1:
break
return min_len
209-长度最小的子数组
最新推荐文章于 2024-07-19 19:11:19 发布