209. 长度最小的子数组

    1. class Solution:
    2. def minSubArrayLen(self, s, nums):
    3. i, j, r = 0, 0, len(nums)+1
    4. sums = []
    5. for num in nums:
    6. if not sums:
    7. sums.append(num)
    8. else:
    9. sums.append(sums[-1] + num)
    10. while i < len(nums) and j < len(nums):
    11. if sums[j] - sums[i] + nums[i] < s:
    12. j += 1
    13. else:
    14. if j + 1 - i < r:
    15. r = j + 1 - i
    16. i += 1
    17. if r != len(nums) + 1:
    18. return r
    19. else:
    20. return 0