package main
import (
"fmt"
"sort"
)
func eraseOverlapIntervals(intervals \[\]\[\]int) int {
if len(intervals) == 0 {
return 0
}
count := 0 //移除数量
//按第一位从小到大排序
sort.Slice(intervals, func(i, j int) bool {
return intervalsi0 < intervalsj0
})
for i := 1; i < len(intervals); i++ {
//如果当前左边界比前一个右边界比小,说明重叠需要删除
if intervalsi0 < intervalsi-11 {
count++
if intervalsi1 > intervalsi-11 {
intervalsi1 = intervalsi-11
}
}
}
return count
}
func partitionLabels(s string) \[\]int {
m1 := make(mapbyteint)
for i := 0; i < len(s); i++ {
m1s\[i] = i
}
result := make(\[\]int, 0)
left, right := 0, 0
for i := 0; i < len(s); i++ {
if m1s\[i] > right {
right = m1s\[i]
}
if i == right {
result = append(result, right-left+1)
left = i + 1
}
}
return result
}
//56. 合并区间
func merge(intervals \[\]\[\]int) \[\]\[\]int {
result := make(\[\]\[\]int, 0)
sort.Slice(intervals, func(i, j int) bool {
return intervalsi0 < intervalsj0
})
result = append(result, intervals0)
for i := 1; i < len(intervals); i++ {
//如果当前左边界比结果数组最后一个右边界比小,说明重叠
if intervalsi0 <= intervalsi-11 {
if resultlen(result)-11 < intervalsi1 {
resultlen(result)-11 = intervalsi1
}
} else {
result = append(result, intervalsi)
}
}
return result
}