Skip to content

Commit d0f6865

Browse files
committed
Find Top 'K' Frequent Numbers
1 parent f8aad46 commit d0f6865

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

find_k_frequent_numbers.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
"""
2+
>>> find_k_frequent_numbers([1, 3, 5, 12, 11, 12, 11], 2)
3+
[11, 12]
4+
>>> find_k_frequent_numbers([5, 12, 11, 3, 11], 2)
5+
[12, 11]
6+
"""
7+
8+
9+
from heapq import *
10+
11+
# Time O(N + N * logK) | Space O(N)
12+
def find_k_frequent_numbers(nums, k):
13+
minHeap = []
14+
frequencies = {}
15+
16+
for num in nums:
17+
frequencies[num] = frequencies.get(num, 0) + 1
18+
19+
for num, frequency in frequencies.items():
20+
heappush(minHeap, (frequency, num))
21+
22+
if len(minHeap) > k:
23+
heappop(minHeap)
24+
25+
return [num for frequency, num in minHeap]

0 commit comments

Comments
 (0)