代码随想录算法训练营第三十六天|435. 无重叠区间
435. 无重叠区间
题目链接:435. 无重叠区间
思路
难 难 难死了
- 按区间右边界排序
- 前一个右小于等于后一个左,区间不重叠
解题代码
func eraseOverlapIntervals(intervals [][]int) int {
nonover := 1
sort.Slice(intervals,func(i,j int) bool {
return intervals[i][1]<intervals[j][1] //按区间右边界排序
})
for i:=1;i<len(intervals);i++{
if intervals[i-1][1]<=intervals[i][0]{
nonover++
}else{
intervals[i][1] = min(intervals[i][1],intervals[i-1][1])
}
}
return len(intervals)-nonover
}
func min(i,j int) int {
if i<j{
return i
}else{
return j
}
}