gpt4 book ai didi

python - 查找集合的范围,其中集合中的值环绕模数

转载 作者:行者123 更新时间:2023-11-28 19:15:21 24 4
gpt4 key购买 nike

例如,我有一个 Python 集,其中包含表示 24 小时制小时数的数字

s = set([1, 3, 8, 23])
s
>>> {1, 3, 8, 23}

我想找到涵盖集合中每个小时的最小小时范围的大小。通常我可以使用

max(s) - min(s)
22

但在这种情况下,允许最小范围环绕模数(午夜),所以答案是错误的。正确答案是所有值都在 23 到 8 之间,因此最小范围是 9 小时。

有没有一种使用 Python 计算这个的有效方法?

最佳答案

  • 对集合进行排序并追加另一天的第一个小时 (l[0] + 24)
  • 找不同
  • 结果是 24 - 最大差值

>>> l = sorted(s)
>>> l.append(l[0] + 24)
>>> 24 - max(b-a for a,b in zip(l, l[1:]))
9

关于python - 查找集合的范围,其中集合中的值环绕模数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34337849/

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