在列表里添加不重叠的区间(最多不重叠区间)

网友投稿 916 2022-09-10

在列表里添加不重叠的区间(最多不重叠区间)

现有列表a, a中元素是如[x,y]格式的数组,代表一段数字区间, 如[1,3]表示从1到3之间的任何数字

判断给定的新数字区间new_element(例如: [10, 25])能不能添加到列表a中,返回True or False

要求任何被添加进入列表a的新数字区间,必须满足以下条件:

新插入的数字区间[x,y]中,y必须大于x

列表a中每一组数字区间不能存在重叠区域

例如[3, 5]和[7, 8]之间没有重叠,但是[3,5]和[4,6]有重叠的区域(注意: [3, 5]和[5, 6]之间认为是无重叠)

可以得知区间重叠的形式只有四种

a = [

[6, 6.9],

[3, 5.6],

[12, 22],

[37.5, 97.8]

]

def can_add_in(a, new_element):

# y 必须大于 x

if new_element[1] <= new_element[0]:

return False

# 和已存在的每个区间进行比较

for i in a:

# print(i)

# 1 和 4 的情况:新区间的起始在已有区间内

if i[1] > new_element[0] and i[0] <= new_element[0]:

return False

# 2 和 3 的情况:已有区间的起始在新区间内

elif i[0] >= new_element[0] and i[0] < new_element[1]:

return False

return True

print(can_add_in(a, [6.9, 12]))

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Hybrid App混合模式开发的了解
下一篇:Yarn安装与配置
相关文章

 发表评论

暂时没有评论,来抢沙发吧~