题目:原题链接(中等)
标签:扫描线算法、哈希表、滑动窗口、数组
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( N ) O(N) O(N) | O ( K ) O(K) O(K) | 356ms (87.50%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一:
class Solution:
def distinctNumbers(self, nums: List[int], k: int) -> List[int]:
ans = []
count = collections.Counter(nums[:k])
for i in range(len(nums) - k):
ans.append(len(count))
count[nums[i + k]] += 1
count[nums[i]] -= 1
if count[nums[i]] == 0:
count.pop(nums[i])
ans.append(len(count))
return ans