程序查找与Python中的剪切间隔不相交的间隔
假设我们有一个已排序且不相交的间隔列表和另一个表示间隔的列表剪切。我们必须删除与剪切间隔相交的间隔的所有部分,然后返回新列表。
因此,如果输入像间隔=[[2,11],[13,31],[41,61]]cut=[8,46],那么输出将是[[2,8],[46,61]]
为了解决这个问题,我们将遵循以下步骤-
cut_start,cut_end:=剪切
ans:=一个新列表
对于每个开始,以时间间隔结束,
如果start<cut_start,则
如果end>cut_end,则
将间隔[start,cut_start]插入ans
将间隔[cut_end,end]插入ans
如果cut_start和start的最大值<end和cut_end的最小值,则
除此以外,
返回ans
让我们看下面的实现以更好地理解-
示例
class Solution:
def solve(self, intervals, cut):
cut_start, cut_end = cut
ans = []
for start, end in intervals:
if max(cut_start, start) < min(end, cut_end):
if start < cut_start:
ans.append([start, cut_start])
if end > cut_end:
ans.append([cut_end, end])
else:
ans.append([start, end])
return ans
ob = Solution()intervals = [[2, 11],[13, 31],[41, 61]] cut = [8, 46]
print(ob.solve(intervals, cut))输入值
[[2, 11],[13, 31],[41, 61]], [8, 46]
输出结果
[[2, 8], [46, 61]]
热门推荐
10 读书祝福语女生短句简短
11 感谢同事新婚祝福语简短
12 感谢教官文案祝福语简短
13 员工聚会蛋糕祝福语简短
14 元宵发客户祝福语简短
15 给团队信心祝福语简短
16 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话