排序。然后重合的区间进行合并
func merge(_ intervals: [[Int]]) -> [[Int]] {
let length = intervals.count
if length <= 1 {
return intervals
}
let sortArray = intervals.sorted(by: {$0[0] < $1[0]})
var endArray = Array<[Int]>()
for array in sortArray {
let left = array[0] ,right = array[1]
let length = endArray.count
var last = length >= 1 ? endArray[length - 1] : [-1,-1]
if length == 0 || last[1] < left {
endArray.append(array)
}else {
last[1] = max(last[1], right)
endArray[length - 1] = last
}
}
return endArray
}







网友评论