File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change 18
18
- O(n)
19
19
"""
20
20
21
+ # Original Solution
21
22
class Solution :
22
23
def topKFrequent (self , nums : List [int ], k : int ) -> List [int ]:
23
24
frequency = {}
24
25
result = []
26
+
25
27
for num in nums :
26
28
if num in frequency :
27
29
frequency [num ] += 1
28
30
else :
29
31
frequency [num ] = 1
32
+
30
33
sorted_frequency = sorted (frequency .items (), key = lambda x : x [1 ], reverse = True )
34
+
31
35
for i in range (k ):
32
36
result .append (sorted_frequency [i ][0 ])
37
+
38
+ return result
39
+
40
+ # Improved Solution using Heap
41
+ # Time Complexity: O(n log k)
42
+ class Solution :
43
+ def topKFrequent (self , nums : List [int ], k : int ) -> List [int ]:
44
+ frequency = {}
45
+ result = []
46
+ heap = []
47
+
48
+ for num in nums :
49
+ if num in frequency :
50
+ frequency [num ] += 1
51
+ else :
52
+ frequency [num ] = 1
53
+
54
+ for num , freq in frequency .items ():
55
+ heapq .heappush (heap , (- freq , num ))
56
+
57
+ for i in range (k ):
58
+ result .append (heapq .heappop (heap )[1 ])
59
+
33
60
return result
You can’t perform that action at this time.
0 commit comments