使用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

更新于:2021年5月29日

735 次浏览

开启您的职业生涯

完成课程后获得认证

开始
广告