使用 Python 在 K 次删除后找到最少数量的唯一整数的程序
假设我们有一个名为nums的数组,其中只存储整数。如果我们有一个数k。我们必须在完全删除k个元素后找到最少数量的唯一元素。
因此,如果输入类似于nums=[5,4,2,2,4,4,3],k=3,那么输出将为2,因为如果我们删除5和3,以及2s中的任何一个或4中的任何一个,则只剩下2和4。
为了解决这个问题,我们将按照以下步骤操作-
字典:=一张新映射
对于nums中的每个num,执行
字典[编号]:=字典[编号]+1
字典[编号]:=1
如果num不在字典中,则
否则,
计数:=字典的大小
对于字典所有值的排序顺序中的每个频率,请执行
计数:=计数-1
返回计数
k:=k-频率
如果k<0,则
否则,
返回计数
让我们看看以下实现以获得更好的理解-
示例
def solve(nums, k): dictionary={} for num in nums: if num not in dictionary: dictionary[num]=1 else: dictionary[num]+=1 count=len(dictionary) for frequency in sorted(dictionary.values()): k-=frequency if(k<0): return count else: count-=1 return count nums = [5,4,2,2,4,4,3] k = 3 print(solve(nums, k))
输入
[5,4,2,2,4,4,3], 3输出结果
2