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