From bac9beaa6847dcf497e5411e5555b7bc4e457eeb Mon Sep 17 00:00:00 2001 From: bumpsoo Date: Sat, 14 Dec 2024 20:42:14 +0900 Subject: [PATCH] https://leetcode.com/problems/continuous-subarrays --- medium/continuous_subarrays.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 medium/continuous_subarrays.py diff --git a/medium/continuous_subarrays.py b/medium/continuous_subarrays.py new file mode 100644 index 0000000..75f8a97 --- /dev/null +++ b/medium/continuous_subarrays.py @@ -0,0 +1,22 @@ +# https://leetcode.com/problems/continuous-subarrays + +from typing import List + +class Solution: + def continuousSubarrays(self, nums: List[int]) -> int: + memo = {} + left = 0 + right = 0 + result = 0 + while right < len(nums): + memo[nums[right]] = memo.get(nums[right], 0) + 1 + + while max(memo) - min(memo) > 2: + memo[nums[left]] -= 1 + if memo[nums[left]] == 0: + del memo[nums[left]] + left += 1 + right += 1 + result += right - left + return result +