时间复杂度为n是因为尽管套了两个循环,但是每个元素最多只是进来被操作一次,出去被操作一次
class Solution:
def minSubArrayLen(self, target: int, nums: List[int]) -> int:
result = 100001
sum_num = 0
j = -1
for i in range(len(nums)):
sum_num += nums[i]
while sum_num>=target:
j += 1
sum_num -= nums[j]
result = min(result,i-j+1)
if result == 100001:
return 0
return result