Files
Hot-100-Algorithm/普通数组/合并区间/main.go
2025-08-21 19:04:30 +08:00

58 lines
1.0 KiB
Go

package main
import (
"sort"
)
func main() {
intervals := [][]int{
{5, 5},
{1, 3},
{3, 5},
{4, 6},
{1, 1},
{3, 3},
{5, 6},
{3, 3},
{2, 4},
{0, 0},
}
merge(intervals)
}
func merge(intervals [][]int) [][]int {
sort.Slice(intervals, func(i, j int) bool {
return intervals[i][0] < intervals[j][0]
})
//fmt.Println(intervals)
tp2 := -1
result := [][]int{}
for i := 0; i < len(intervals); i++ {
if intervals[i][0] < tp2 {
continue
}
temp := make([]int, 0)
temp = append(temp, intervals[i]...)
tp := intervals[i][1]
//fmt.Println("当前tp1", tp)
for j := i + 1; j < len(intervals); j++ {
if intervals[j][0] <= tp {
temp = append(temp, intervals[j]...)
tp = max(intervals[j][1], tp)
//fmt.Println("--", intervals[j][1], intervals[i][1])
//fmt.Println("当前tp", tp)
}
}
//fmt.Println("temp", temp)
//fmt.Println("当前tp", tp)
tp2 = tp + 1
sort.Ints(temp)
result = append(result, []int{temp[0], temp[len(temp)-1]})
}
//fmt.Println(result)
return result
}