分享几个自己编写的处理数值区间的函数
合并多个区间
def merge(intervals):
'''
@msg: 合并多个区间
@param intervals {list} 一个二维数组,每一项代表一个区间
@return: {list} 返回合并后的区间列表
'''
intervals = [sorted(x) for x in intervals]
intervals.sort(key=lambda x: x[0])
merged = []
for interval in intervals:
if not merged or merged[-1][1] < interval[0]:
merged.append(interval)
else:
merged[-1][1] = max(merged[-1][1], interval[1])
return merged
例如将 [1,3]、[2,8]、[3,5]、[-100,-10]、[-5,2.5] 这几个区间合并:
intervals=[[1,3],[2,8],[3,5],[-100,-10],[-5,2.5]]
print(merge(intervals))
# 输出 [[-100, -10], [-5, 8]]
判断两个区间的关系
def relation(interval1,interval2):
'''
@msg: 判断两个区间的关系
@param interval1 {list} 第一个区间
@param interval2 {list} 第二个区间