Dashboard Temp Share Shortlinks Frames API

HTMLify

count-distinct-elements-in-every-window.py
Views: 11 | Author: prakhardoneria
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution:
    def countDistinct(self, arr, k):
        n = len(arr)
        res = []
        freq_map = {}
        
        for i in range(k):
            freq_map[arr[i]] = freq_map.get(arr[i], 0) + 1
        
        res.append(len(freq_map))
        
        for i in range(k, n):
            out_elem = arr[i - k]
            freq_map[out_elem] -= 1
            if freq_map[out_elem] == 0:
                del freq_map[out_elem]
            
            in_elem = arr[i]
            freq_map[in_elem] = freq_map.get(in_elem, 0) + 1
            
            res.append(len(freq_map))
            
        return res