从Python的间隔列表中查找总唯一持续时间的程序
假设我们有一个间隔列表,其中每个列表代表一个间隔[开始,结束](包括开始)。我们必须找到它涵盖的总的唯一持续时间。
因此,如果输入像间隔=[[2,11],[13,31],[41,61]],则输出将为50,因为总的唯一覆盖距离为(11-2+1)=10,则(31-13+1)=19,而(61-41+1)=21,因此总数为50。
为了解决这个问题,我们将遵循以下步骤-
如果间隔列表为空,则
返回0
排序列表间隔
[开始,结束]:=间隔[0]
回答:=0
对于间隔中的每个开始和结束(s,e),请执行
结束:=结束的最大值,e
ans:=ans+结束-开始+1
开始:=s,结束:=e
如果s>end,则
除此以外,
ans:=ans+结束-开始+1
返回ans
让我们看下面的实现以更好地理解-
示例
class Solution:
def solve(self, intervals):
if not intervals:
return 0
intervals.sort()
start, end = intervals[0]
ans = 0
for s, e in intervals:
if s > end:
ans += end - start + 1
start = s
end = e
else:
end = max(end, e)
ans += end - start + 1
return ans
ob = Solution()intervals = [[2, 11],[13, 31],[41, 61]]
print(ob.solve(intervals))输入值
[[2, 11],[13, 31],[41, 61]]
输出结果
50
热门推荐
10 财运虎年祝福语简短语
11 单亲爸爸春节祝福语简短
12 狗狗上厕所训练
13 植物种植祝福语简短
14 翻译考试祝福语朋友简短
15 个人周年庆简短祝福语
16 狗狗怎么训练
17 分别祝福语简短搞笑英文
18 生日广州男生祝福语简短