summaryrefslogtreecommitdiff
path: root/progs/a394.py
blob: 25f8f3eeff8e8b52afceea5c4ad2b5efb036e1eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# FIXME: multiple variable assignment in for loop
#
# def func(nums, k):
#     import collections
#     d = collections.defaultdict(int)
#     for row in nums:
#         for i in row:
#             d[i] += 1
#     temp = []
#     import heapq
#     for key, v in d.items():
#         if len(temp) < k:
#             temp.append((v, key))
#             if len(temp) == k:
#                 heapq.heapify(temp)
#         else:
#             if v > temp[0][0]:
#                 heapq.heappop(temp)
#                 heapq.heappush(temp, (v, key))
#     result = []
#     while temp:
#         v, key = heapq.heappop(temp)
#         result.append(key)
#     return result