当前位置: 首页 > 编程笔记 >

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

单于扬
2023-03-14
本文向大家介绍程序查找在python中出售n个项目后剩余的项目数,包括了程序查找在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

      html" target="_blank">list-paddingleft-2" style="list-style-type: square;">
  • 返回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
 类似资料:
  • 我需要按高基数键对无限通量进行分组。 例如: 组密钥是域url 对一个域的调用应该是严格顺序的(下一次调用发生在前一次调用完成后) 对不同域的调用应该是并发的 具有相同键(url)的项目之间的时间间隔未知,但预计具有突发性质。几个项目在短时间内发出,然后长时间暂停,直到下一组。 我在两种情况下取消了小组: > 结果表明,在不久的将来,该组中很可能没有新项目。 下一项在组超时期间不发出。我使用tim

  • 问题内容: 可以说我有下表。 我想得到所有的朋友,但我希望ID 5成为列表中的第一项。我不在乎我收到其余物品的顺序。 所需的查询结果将是: 我怎样才能做到这一点? 使用Mysql5.1.x。 谢谢! 问题答案: (假设您不关心其余的顺序,否则,例如, 通过id asc进行休息 )

  • 我正在一个项目(简单的电话簿)为个人使用。我在删除listview(listView1)中的最后一个剩余项时遇到了麻烦。在这里你可以看看它是什么样子的: 所以,假设我在列表中有5个联系人,当我试图删除所有的联系人时,这是不可能的。只可能移除其中的4个。当我试图删除所有这些联系人,然后关闭/运行应用程序时,将不会有删除的联系人。当我试图删除其中4个并关闭/运行程序时,它们将被删除。当我试图删除最后一

  • 本文向大家介绍用于业余项目的8个优秀Python库,包括了用于业余项目的8个优秀Python库的使用技巧和注意事项,需要的朋友参考一下 在 Python/Django 的世界里有这样一个谚语:为语言而来,为社区而留。对绝大多数人来说的确是这样的,但是,还有一件事情使得我们一直停留在 Python 的世界里,不愿离开,那就是我们可以很容易地利用一顿午餐或晚上几个小时的时间,把一个想法快速地实现出来。

  • 问题内容: 嘿。我有一个很大的数组,我想找到第N个最大值。我可以简单地对数组进行排序,然后采用第N个元素,但是我只对一个元素感兴趣,因此可能有比对整个数组进行排序更好的方法… 问题答案: 排序至少需要O(nlogn)运行时间- 有非常有效的选择算法可以在线性时间内解决您的问题。 (有时是),它基于quicksort(递归分区)的思想,是一个很好的解决方案(请参阅伪代码的链接+另一个示例)。

  • 问题内容: | uId | title | amount | makers | widgets | 1 richard 998 xcorp sprocket 2 swiss 995 ycorp framitz 3 ricky 90 zcorp flobber 4 ricky2 798 xcorp framitz 1 lilrick 390 xcorp sprocket 1 brie 200 mco