leetcode/209-240524-pass/main.py

42 lines
1.3 KiB
Python
Raw Normal View History

2024-05-24 22:56:40 +02:00
class Solution1(object):
def minSubArrayLen(self, target, nums):
"""
:type target: int
:type nums: List[int]
:rtype: int
"""
sub = []
sub.append(0)
num_sum = 0
for ind, num in enumerate(nums):
sub.append(num_sum + num)
num_sum += num
print(nums)
for length in range(1, len(nums) + 1):
print(length)
for i in range(0, len(nums) - length + 1):
rlt = sub[ i + length ] - sub[i]
print(rlt, length, i)
if rlt >= target:
return length
return 0
class Solution:
def minSubArrayLen(self, target: int, nums: List[int]) -> int:
if sum(nums) < target:
return 0
left_idx = 0
s = 0 # sum
ans = len(nums)
for right_idx, val in enumerate(nums):
s += val
while s >= target:
s -= nums[left_idx]
ans = min(ans, right_idx - left_idx + 1)
left_idx += 1
return ans
print(Solution().minSubArrayLen(7, [2,3,1,2,4,3]))
print(Solution().minSubArrayLen(4, [1, 1, 4]))
print(Solution().minSubArrayLen(11, [1, 1, 1, 1]))
print(Solution().minSubArrayLen(15, [1, 2, 3, 4, 5]))