程序查找与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]]
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短