gpt4 book ai didi

python 数组挑战

转载 作者:行者123 更新时间:2023-12-01 05:46:31 25 4
gpt4 key购买 nike

我有这个数组:[[0,10,20],[1,15,25],[2,20,40]]

0, 1, 2 将是 ids,10,20 15,25 20,40 将是它们各自的范围。

所以,我需要弄清楚范围以及哪些 id 具有哪个范围。

每个 id 代表一个手电筒,每个 id 都有自己的范围,我需要它来确定哪些区域被哪些手电筒照亮。

我不知道是否足够清楚,所以这是我期望从代码中返回的内容:

[
[0],[10,15],
[0,1],[15,20],
[1,2],[20,25],
[2], [25,40]
]

提前致谢。

最佳答案

首先,必须对实线进行分段:

min_boundaries = set(min for id, min, max in orig)
max_boundaries = set(max for id, min, max in orig)
segment_boundaries = sorted(list(min_boundaries | max_boundaries))

然后,对于每个部分,检查哪些灯照亮该部分。线段中间的一个点就足够了:

result = []
old_boundary = segment_boundaries[0]
for boundary in segment_boundaries[1:]:
bounds = [old_boundary, boundary]
middle = (old_boundary + boundary) / 2
ids = [id for id, min, max in orig if min < middle < max]
result.append(ids)
result.append(bounds)
old_boundary = boundary

关于python 数组挑战,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15963374/

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