给你一个整数数组 arr 和一个整数 k 。现需要从数组中恰好移除 k 个元素,请找出移除后数组中不同整数的最少数目
class Solution(object):
def findLeastNumOfUniqueInts(self, arr, k):
"""
:type arr: List[int]
:type k: int
:rtype: int
"""
counts={}#设置一个字典
for num in arr:
if num not in counts:
counts[num]=1#如果定义字典里没有存在该整数则记录
else:
counts[num]+=1#如果含有该整数则+1
ls=[]#定义一个元组用于存放counts的值,也就是元素对应的数目
for value in counts.values():
ls.append(value)#将value的值存放在ls元组中
ls.sort()#进行排序
for l in range(len(ls)):
k-=ls[l]
if k==0:
return len(ls[l+1:])
if k<0:
return len(ls[l:])