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