程序查找在python中出售n个项目后剩余的项目数
假设我们有一个数字列表,称为项目,另一个值为n。推销员在袋子里的物品带有随机ID。推销员可以从购物袋中删除多达n个物品。取出n次后,我们必须找到袋子中不同ID的最小数量。
因此,如果输入类似于items=[2,2,6,6]n=2,则输出将为1,因为我们可以出售ID为2或ID6的两个项目,则只有单个目标的项目为那里。
为了解决这个问题,我们将按照以下步骤操作:
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
热门推荐
7 简短的二胎祝福语
10 简短霸气女儿生日 祝福语
11 祝福语高考小众诗句简短
12 元旦祝福语20秒简短
13 老师过年祝福语大全 简短
14 一生祝福语简短
15 产检祝福语简短霸气
16 朋友店开张祝福语简短
17 生日爱情祝福语大全简短
18 朋友女儿生日祝福语 简短