부분 배열의 합이 target 보다 크거나 같은 경우 가장 길이가 작은 부분 배열 찾기
알고리즘: Sliding Window
class Solution:
def minSubArrayLen(self, target: int, nums: List[int]) -> int:
if sum(nums) < target:
return 0
tmp, left, ans = 0, 0, len(nums)
for right, n in enumerate(nums):
tmp += n
while tmp >= target:
tmp -= nums[left]
ans = min(ans, right - left + 1)
left += 1
return ans
초반에 문제를 풀 때 right가 끝까지 갔을 때 left를 무조건 줄여가며 검사를 했는데
생각해보니 이미 right가 끝까지 간 상태에서 tmp가 이미 target보다 작다면
더이상 탐색이 더 불필요했다.
이런걸 좀 빨리빨리 캐치해내길,,,