【发布时间】:2021-10-04 04:14:49
【问题描述】:
我正在尝试在 python 中实现逻辑。给定一组区间,找出交点数最多的区间。如果输入(1,6) (2,3) (4,11),则应返回(1,6)。这已在下面得到解答,但我无法在 python 中实现它。
given-a-set-of-intervals-find-the-interval-which-has-the-maximum-number-of-inte.
到目前为止,我正在使用以下逻辑。任何帮助将不胜感激。
def interval_intersection(intervals):
if len(intervals) ==1:
return intervals
intervals.sort(key=lambda x: x[0])
res =[intervals[0]]
for i in range(1,len(intervals)):
if intervals[i][0] > res[-1][1]:
res.append(intervals[i])
else:
res[-1] = [min(res[-1][0],intervals[i][0]),max(res[-1][1],intervals[i][1])]
return res
Examples:
-
[[1,5],[5,10],[5,5]]答案应该是[5,5]在 tie [5,5] 的情况下,元素数量最少的区间。这里 [5,5] 在范围内只有 1 个元素,即 5,因此是 ans -
[[1,2],[3,5]]没有交集返回-1
【问题讨论】:
-
你能解释一下你的例子中
maximum交互是什么意思吗?为什么不是 (3, 11) 或 (3, 4)?再举几个例子会有帮助。 -
是的,请给一个示例测试用例。
-
如果输入 (1,6) (2,3) (4,11),则应该返回 (1,6) -- 为什么?
-
似乎他想要与其他区间有最多交集的初始区间,而不是最大源区间数覆盖的新区间
-
好的,所以如果它们也被绑定,任何间隔都可以吗?例如,
[1,2], [2,3]?如果没有,请尝试说明您使用的所有规则。另外,您的问题是关于如何将其他帖子中的伪代码实现为 Python,或者如何修改您的逻辑来解决问题?
标签: python algorithm intervals