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