我正在处理一个有趣的 python 问题:
给定一个整数、细菌和一个正整数常数 K 的列表,如果有两个元素 i 和 j 满足以下条件:
j < i <= j + K
设计一个函数,使 i 留下并移除 j,并返回列表中元素的最小可能数量。
功能: micro_world(bacteria, K)
例如,
bacteria = [101, 53, 42, 102, 101, 55, 54]
K = 1
最终结果应该是
[42,102,55]
因此应返回 3。
相似地
micro_world([101, 53, 42, 102, 101, 55, 54], 1) 会给我一个结果 3
micro_world([20, 15, 10, 15, 20, 25], 5) 将给我一个结果 1
我正在考虑使用列表理解来过滤掉不符合上述标准的元素,从而获得我想要的元素。但我不确定如何继续,因为它涉及列表中每个元素之间的关系。
result = [ i for i in bacteria if ... ]
我的 if 语句应该使用什么?
如果这不是一个好方法,我该怎么办?
谢谢。
编辑:这两个答案都为我提供了非常好的指导。但是关于细菌列表中的重复值只有一件小事。例如,如果输入
bacteria = [3, 3]
即使这只是一个块,结果应该是 2,因为 3 !> 3 因此两者都不会被删除。
慕婉清6462132
凤凰求蛊
相关分类