Skip to content

Commit 5ab295f

Browse files
authored
Create 1481-least-number-of-unique-integers-after-k-removals.py
1 parent 67ef614 commit 5ab295f

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Use a heap
2+
class Solution:
3+
def findLeastNumOfUniqueInts(self, arr: List[int], k: int) -> int:
4+
freq = Counter(arr)
5+
heap = list(freq.values())
6+
heapq.heapify(heap)
7+
8+
res = len(heap)
9+
while k > 0 and heap:
10+
f = heapq.heappop(heap)
11+
if k >= f:
12+
k -= f
13+
res -= 1
14+
return res
15+
16+
# Use buckets
17+
class Solution:
18+
def findLeastNumOfUniqueInts(self, arr: List[int], k: int) -> int:
19+
freq = Counter(arr)
20+
freqList = [0] * (len(arr) + 1)
21+
22+
for n, f in freq.items():
23+
freqList[f] += 1
24+
25+
res = len(freq)
26+
for f in range(1, len(freqList)):
27+
remove = freqList[f]
28+
if k >= f * remove:
29+
k -= f * remove
30+
res -= remove
31+
else:
32+
remove = k // f
33+
res -= remove
34+
break
35+
return res

0 commit comments

Comments
 (0)