使用Python查找K次移除后唯一整数的最少数量的程序
假设我们有一个名为nums的数组,其中只存储整数。如果我们有一个数字k,我们必须找到移除恰好k个元素后唯一元素的最少数量。
因此,如果输入类似于nums = [5,4,2,2,4,4,3],k = 3,则输出将为2,因为如果我们移除5和3,以及任一个2或任一个4,则只剩下2和4。
为了解决这个问题,我们将遵循以下步骤:
字典:=一个新的映射
对于nums中的每个num,执行:
如果num不在字典中,则
字典[num]:= 1
否则,
字典[num] := 字典[num] + 1
计数:= 字典的大小
对于字典所有值的排序顺序中的每个频率,执行:
k := k - 频率
如果k < 0,则
返回计数
否则,
计数 := 计数 - 1
返回计数
让我们看看下面的实现,以便更好地理解:
示例
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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP