题目分析
题目给了一个整数数组 arr 和一个整数 k 。要求从数组中恰好移除 k 个元素,输出移除后数组中不同整数的最少数目。
在这里主要用到了python内置的counter & sort函数。
- 通过counter函数统计数组中不同字母出现的频率
- 把统计结果转换成list,此时列表的长度就是数组包含的不同整数个数
- 借助sort依照出现的频率进行排序
- 按照贪心算法消掉出现频率最低的
- 每消掉一种从原先整数个数减一,最终得到的即为所求
代码
```python
class Solution(object):
def findLeastNumOfUniqueInts(self, arr, k):
d=Counter(arr)
temp=list(d.items())
temp.sort(key = lambda x : x[1])
ans=len(temp)
for i,j in temp:
if j<=k:
k-=j
ans-=1
return ans
有任何问题欢迎留言,转载请注明出处~