gpt4 book ai didi

python - 在 Python 集合中查找最小的连续整数

转载 作者:太空宇宙 更新时间:2023-11-04 07:47:08 27 4
gpt4 key购买 nike

获取 Python 集合中最小 N 个连续整数的列表的最佳方法是什么?

>>> s=set([5,6,10,12,13,15,30,40,41,42,43,44,55,56,90,300,500])
>>> s
set([42, 43, 44, 5, 6, 90, 300, 30, 10, 12, 13, 55, 56, 15, 500, 40, 41])
>>> smallest_contiguous(s,5)
[40,41,42,43,44]
>>> smallest_contiguous(s,6)
[]

编辑:感谢大家的回答。

最佳答案

Sven 的想法是正确的。您只需检查前面的数字 N - 1 就可以避免检查超集。

def smallest_contiguous(s, N):
lst = list(s)
lst.sort()
Nm = N-1
for i in xrange(len(lst) - Nm):
if lst[i] + Nm == lst[i + Nm]:
return range(lst[i], lst[i]+N)
return []

只有当集合作为输入并且知道该集合只包含整数时,这才总是正确的。

关于python - 在 Python 集合中查找最小的连续整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4378384/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com