57. 插入区间
给出一个无重叠的 ,按照区间起始端点排序的区间列表。
在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
思路:遍历一遍已有区间,对和要插入的区间有重叠的部分进行合并即可
func insert(intervals [][]int, newInterval []int) (ans [][]int) {
l,r := newInterval[0],newInterval[1]
flag := false
for _ , interval := range intervals{
nl , nr := interval[0],interval[1]
if nr < l {
ans = append(ans,interval)
}else if nl > r {
if !flag{
ans = append(ans,[]int{l,r})
flag = true
}
ans = append(ans,interval)
}else{
l = min(l,nl)
r = max(r,nr)
}
}
if !flag {
ans = append(ans,[]int{l,r})
}
return ans
}
func min(a int, b int) int{
if a < b{
return a
}else{
return b
}
}
func max(a int, b int) int{
if a > b{
return a
}else{
return b
}
}