使用Python编写程序,找出删除K个元素后最少的唯一整数数量

使用Python编写程序,找出删除K个元素后最少的唯一整数数量

假设我们有一个名为nums的数组,其中仅存储整数。如果有一个数字k,我们必须找到删除k个元素后最少的唯一元素数量。

因此,如果输入是nums = [5,4,2,2,4,4,3],k = 3,那么输出将为2,因为如果我们删除5和3,只剩下2和4,任意一个2或者4。

要解决这个问题,我们将按照以下步骤进行−

  • dictionary:=新地图

  • 对于nums中的每个num,执行以下操作

    • 如果num不在dictionary中,则执行以下操作
      • dictionary[num]:=1
    • 否则,执行以下操作
      • dictionary[num]:=dictionary[num]+1
  • count:=dictionary中的值的总数

  • 对于dictionary的所有value的排序顺序中的每个频率,执行以下操作

    • k:=k-frequency

    • 如果k<0,则执行以下操作

      • 返回count
    • 否则,执行以下操作
      • count:=count-1
  • 返回count

请看以下实现以更好地理解−

示例

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程