Leetcode # 3152. Special Array II
- 2024.12.09
- Sliding Window
Problem
https://leetcode.com/problems/special-array-ii
Solution: Sliding Window
- 由於從 0 ~ (len(n) – 1) 的所有 indeses 都要建置
所以使用 list 會比 dict 時間上效率更好 - 第 6 列的
nums[1:] + [nums[-1]]
是為了檢驗最後一個元素
Time Complexity: O(len(nums) + len(queries))
Space Complexity: O(len(nums))
(The input and output generally do not count towards the space complexity.)
class Solution: def isArraySpecial(self, nums: List[int], queries: List[List[int]]) -> List[bool]: pre_parity = nums[0] % 2 special_start = 0 specials = [0] * len(nums) //{} for i, n in enumerate(nums[1:] + [nums[-1]], 1): cur_parity = n % 2 if pre_parity != cur_parity: pre_parity = cur_parity continue for s in range(special_start, i): specials[s] = i - 1 special_start = i ans = [True] * len(queries) for i, q in enumerate(queries): if q[1] > specials[q[0]]: ans[i] = False return ans
Last Updated on 2024/12/09 by A1go