计算完全包含在 Python 中其他区间内的区间数的程序
假设我们有一个区间列表。在这个列表中,interval[i]有[start,end]值。我们必须找到另一个区间包含的区间数。如果有一个间隔被多个其他间隔包含,则只应计算一次。当s0≤s1且e0≥e1时,区间[s0,e0]位于另一个区间[s1,e1]内。
因此,如果输入类似于区间=[[2,6],[3,4],[4,7],[5,5]],那么输出将为2,因为[3,4]和[5,5]分别在[2,6]和[4,7]里面。
示例
让我们看看以下实现以获得更好的理解-
def solve(intervals): if not intervals: return 0 intervals.sort(key=lambda x: (x[0], -x[1])) end_mx = float("-inf") ans = 0 for start, end in intervals: if end <= end_mx: ans += 1 end_mx = max(end_mx, end) return ans intervals = [[2, 6],[3, 4],[4, 7],[5, 5]] print(solve(intervals))
输入
[[2, 6],[3, 4],[4, 7],[5, 5]]输出结果
2