题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/description/
核心思想:滑动窗口
定义起始位置和终点位置分别为0
终点下标遍历数组,起点位置更新为当前子序列长度最小的数组
while cur_sum >= target: 原因在于 if ( cur_sum >= target) 只能减去一次,如果后续 cur_sum -= nums[left] 后还是>= target ,就无法得到最短长度
min_len if min_len != float('inf') else 0:如果
min_len不等于正无穷(float('inf')),则返回min_len的值;否则(即min_len为无穷大时),返回0。

class Solution(object):
def minSubArrayLen(self, target, nums):
size = len(nums)
left,right = 0,0
min_len = float('inf')
cur_sum = 0
while right < size:
cur_sum += nums[right]
while cur_sum >= target:
min_len = min(min_len,(right-left)+1)
cur_sum -= nums[left]
left += 1
right += 1
return min_len if min_len != float('inf') else 0