更新 0056.合并区间 go版本(优化空间复杂度,不开辟新数组)

更新 0056.合并区间 go版本(优化空间复杂度,不开辟新数组)
This commit is contained in:
X-shuffle
2021-08-11 12:15:35 +08:00
committed by GitHub
parent 8a2d42013c
commit 9ca9e4f4cb

View File

@ -176,30 +176,27 @@ class Solution:
``` ```
Go Go
```Go ```golang
func merge(intervals [][]int) [][]int { func merge(intervals [][]int) [][]int {
sort.Slice(intervals, func(i, j int) bool { //先从小到大排序
return intervals[i][0]<intervals[j][0] sort.Slice(intervals,func(i,j int)bool{
}) return intervals[i][0]<intervals[j][0]
})
res:=[][]int{} //再弄重复的
prev:=intervals[0] for i:=0;i<len(intervals)-1;i++{
if intervals[i][1]>=intervals[i+1][0]{
for i:=1;i<len(intervals);i++{ intervals[i][1]=max(intervals[i][1],intervals[i+1][1])//赋值最大值
cur :=intervals[i] intervals=append(intervals[:i+1],intervals[i+2:]...)
if prev[1]<cur[0]{ i--
res=append(res,prev) }
prev=cur }
}else { return intervals
prev[1]=max(prev[1],cur[1])
}
}
res=append(res,prev)
return res
} }
func max(a, b int) int { func max(a,b int)int{
if a > b { return a } if a>b{
return b return a
}
return b
} }
``` ```