Problem个
给定一个由正整数nums
和正整数target
组成的数组,返回其子数组的最小长度
总和大于或等于目标.如果没有这样的子数组,则返回0.
问题链接:209. Minimum size subarray sum
下面是一些示例:
nums = [2,3,1,2,4,3] target = 7 output = 2
nums = [1,4,4] target = 4 output = 1
nums = [1,1,1,1,1,1,1,1] target = 11 output = 0
My thought process个
class Solution(object):
def minSubArrayLen(self, target, nums):
i,j,sumSoFar=0,0,0
N = len(nums)
if N == 0:
return 0
min_len=float('inf')
while j < N:
if sumSoFar >= target:
min_len = min(j-i, min_len)
sumSoFar-=nums[i]
i+=1
else: #sumSoFar is less than target
sumSoFar+=nums[j]
j+=1
if min_len == float('inf'):
return 0
return min_len
Issue个
当在第一种情况(nums = [2,3,1,2,4,3]
,target = 7
)中try 手工解决时,
我到了j=6
,然后才能把[3,4]
作为可能的解决方案,因为j == N/6
.还有,我觉得
当我达到if
的条件时,我加两次nums[j]
(在j=3
).
我做错了什么?