Skip to content

Commit 7f99b92

Browse files
committed
top-l-frequent-elements solution2
1 parent 8fa2c60 commit 7f99b92

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import heapq
2+
13
class Solution:
24
def topKFrequent(self, nums: List[int], k: int) -> List[int]:
35
table = {}
@@ -6,7 +8,17 @@ def topKFrequent(self, nums: List[int], k: int) -> List[int]:
68
table[n] += 1
79
else:
810
table[n] = 1
9-
sorted_table = sorted(table.items(), key=lambda x:x[1], reverse = True)
10-
11-
return [ key for key, freq in sorted_table[:k]]
12-
11+
#sol 1) sorting 사용한 case
12+
# sorted_table = sorted(table.items(), key=lambda x:x[1], reverse = True)
13+
# return [ key for key, freq in sorted_table[:k]]
14+
15+
#sol 2) min heap 사용한 case
16+
#convert the frequencies to negative values so it return first
17+
heap = [(-freq, key) for key, freq in table.items()]
18+
heapq.heapify(heap)
19+
20+
res = []
21+
for _ in range(k):
22+
freq, key = heapq.heappop(heap)
23+
res.append(key)
24+
return res

0 commit comments

Comments
 (0)