文章作者:Tyan 博客:noahsnail.com | CSDN | 简书
1. Description
2. Solution
- Version 1
class Solution:
def findLeastNumOfUniqueInts(self, arr, k):
stat = {}
for num in arr:
stat[num] = stat.get(num, 0) 1
result = sorted(stat.items(), key=lambda item: item[1])
while k > 0:
k = k - result[0][1]
if k >= 0:
result.pop(0)
return len(result)
- Version 2
class Solution:
def findLeastNumOfUniqueInts(self, arr, k):
stat = {}
for num in arr:
stat[num] = stat.get(num, 0) 1
result = sorted(stat.items(), key=lambda item: item[1])
index = 0
while k > 0:
k = k - result[index][1]
if k >= 0:
index = 1
return len(result) - index
- Version 3
class Solution:
def findLeastNumOfUniqueInts(self, arr, k):
stat = {}
for num in arr:
stat[num] = stat.get(num, 0) 1
result = sorted(arr, key=lambda num: (stat[num], num))
return len(set(result[k:]))
Reference
- https://leetcode.com/problems/least-number-of-unique-integers-after-k-removals/