合并区间
给出一个区间的集合,请合并所有重叠的区间。
示例 1:
输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
示例 2:
输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。
解题过程:
思路:
1. 首先集合应该是一个有序集合(升序)
2. 比较两个元素的开始和结束索引值大小
3. 在原有集合上修改注意索引和长度问题

索引值发生变化,需要重新处理索引值
func merge(intervals [][]int) [][]int{
l := len(intervals)
if l <= 1{
return intervals
}
sort.Slice(intervals, func(i, j int) bool {
return intervals[i][0] < intervals[j][0]
})
for i:= 0; i< l-1 ; i++ {
if intervals[i][1] >= intervals[i+1][0]{
if intervals[i][1] < intervals[i+1][1]{
intervals[i][1] = intervals[i+1][1]
}
intervals = append(intervals[:i+1], intervals[i+2:]...)
i--
l--
}
}
return intervals
}