summaryrefslogtreecommitdiff
path: root/progs/a394.py
diff options
context:
space:
mode:
Diffstat (limited to 'progs/a394.py')
-rw-r--r--progs/a394.py46
1 files changed, 22 insertions, 24 deletions
diff --git a/progs/a394.py b/progs/a394.py
index 25f8f3e..d977184 100644
--- a/progs/a394.py
+++ b/progs/a394.py
@@ -1,24 +1,22 @@
-# 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 \ No newline at end of file
+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