编写一个名为 sumIntervals 的函数,该函数接受一个间隔数组,并返回所有间隔长度的总和。重叠间隔只应计数一次。
间隔
间隔由数组形式的一对整数表示。间隔的第一个值将始终小于第二个值。间隔示例:是从 1 到 5 的间隔。此间隔的长度为 4。[1, 5]
重叠间隔
包含重叠间隔的列表:
[
[1,4],
[7, 10],
[3, 5]
]
这些间隔的长度之和为 7。由于 [1, 4] 和 [3, 5] 重叠,我们可以将区间视为 [1, 5],其长度为 4。
例子:
sumIntervals( [
[1,2],
[6, 10],
[11, 15]
] ); // => 9
sumIntervals( [
[1,4],
[7, 10],
[3, 5]
] ); // => 7
sumIntervals( [
[1,5],
[10, 20],
[1, 6],
[16, 19],
[5, 11]
] ); // => 19
题目难度:一般
题目来源: Sum of Intervals | Codewars
def sum_of_intervals(intervals: list) -> int:
pass
assert sum_of_intervals([(1, 5)]) == 4
assert sum_of_intervals([(1, 5), (6, 10)]) == 8
assert sum_of_intervals([(1, 5), (1, 5)]) == 4
assert sum_of_intervals([(1, 4), (7, 10), (3, 5)]) == 7
assert sum_of_intervals([(1, 5), (10, 20), (1, 6),(16, 19), (5, 11)]) == 19