假设我们有一个数字列表,称为项目,另一个值为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
我需要按高基数键对无限通量进行分组。 例如: 组密钥是域url 对一个域的调用应该是严格顺序的(下一次调用发生在前一次调用完成后) 对不同域的调用应该是并发的 具有相同键(url)的项目之间的时间间隔未知,但预计具有突发性质。几个项目在短时间内发出,然后长时间暂停,直到下一组。 我在两种情况下取消了小组: > 结果表明,在不久的将来,该组中很可能没有新项目。 下一项在组超时期间不发出。我使用tim
问题内容: 可以说我有下表。 我想得到所有的朋友,但我希望ID 5成为列表中的第一项。我不在乎我收到其余物品的顺序。 所需的查询结果将是: 我怎样才能做到这一点? 使用Mysql5.1.x。 谢谢! 问题答案: (假设您不关心其余的顺序,否则,例如, 通过id asc进行休息 )
我正在一个项目(简单的电话簿)为个人使用。我在删除listview(listView1)中的最后一个剩余项时遇到了麻烦。在这里你可以看看它是什么样子的: 所以,假设我在列表中有5个联系人,当我试图删除所有的联系人时,这是不可能的。只可能移除其中的4个。当我试图删除所有这些联系人,然后关闭/运行应用程序时,将不会有删除的联系人。当我试图删除其中4个并关闭/运行程序时,它们将被删除。当我试图删除最后一
问题内容: 嘿。我有一个很大的数组,我想找到第N个最大值。我可以简单地对数组进行排序,然后采用第N个元素,但是我只对一个元素感兴趣,因此可能有比对整个数组进行排序更好的方法… 问题答案: 排序至少需要O(nlogn)运行时间- 有非常有效的选择算法可以在线性时间内解决您的问题。 (有时是),它基于quicksort(递归分区)的思想,是一个很好的解决方案(请参阅伪代码的链接+另一个示例)。
本文向大家介绍用于业余项目的8个优秀Python库,包括了用于业余项目的8个优秀Python库的使用技巧和注意事项,需要的朋友参考一下 在 Python/Django 的世界里有这样一个谚语:为语言而来,为社区而留。对绝大多数人来说的确是这样的,但是,还有一件事情使得我们一直停留在 Python 的世界里,不愿离开,那就是我们可以很容易地利用一顿午餐或晚上几个小时的时间,把一个想法快速地实现出来。
问题内容: | 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