程序查找在python中出售n个项目后剩余的项目数

假设我们有一个数字列表,称为项目,另一个值为n。推销员在袋子里的物品带有随机ID。推销员可以从购物袋中删除多达n个物品。取出n次后,我们必须找到袋子中不同ID的最小数量。

因此,如果输入类似于items = [2,2,6,6] n = 2,则输出将为1,因为我们可以出售ID为2或ID 6的两个项目,则只有单个目标的项目为那里。

为了解决这个问题,我们将按照以下步骤操作:

  • c:=项目中每个元素的出现频率

  • ans:= c的大小

  • freq:=排序c中所有频率的列表

  • i:= 0

  • 当我<频率的大小时

    • 返回ans

    • n:= n-频率[i]

    • ans:= ans-1

    • 如果freq [i] <= n,则

    • 除此以外,

    • 我:=我+ 1

    • 返回0

    让我们看下面的实现以更好地理解:

    示例

    from collections import Counter

    class Solution:

       def solve(self, items, n):

          c = Counter(items)

          ans = len(c)

          freq = sorted(c.values())

          i = 0

          while i < len(freq):

             if freq[i] <= n:

                n -= freq[i]

                ans -= 1

             else:

                return ans

             i += 1

          return 0

    ob = Solution()items = [2, 2, 6, 6]

    n = 2

    print(ob.solve(items, n))

    输入值

    [2, 2, 6, 6], 2

    输出结果

    1

    以上是 程序查找在python中出售n个项目后剩余的项目数 的全部内容, 来源链接: utcz.com/z/334671.html

    回到顶部