增加435.无重叠区间 js解法

This commit is contained in:
martisss
2021-09-11 16:52:49 +08:00
parent 174581ce80
commit a4074220b3

View File

@ -274,6 +274,7 @@ func min(a,b int)int{
} }
``` ```
Javascript: Javascript:
- 按右边界排序
```Javascript ```Javascript
var eraseOverlapIntervals = function(intervals) { var eraseOverlapIntervals = function(intervals) {
intervals.sort((a, b) => { intervals.sort((a, b) => {
@ -285,7 +286,7 @@ var eraseOverlapIntervals = function(intervals) {
for(let i = 1; i < intervals.length; i++) { for(let i = 1; i < intervals.length; i++) {
let interval = intervals[i] let interval = intervals[i]
if(interval[0] >= right) { if(interval[0] >= end) {
end = interval[1] end = interval[1]
count += 1 count += 1
} }
@ -294,6 +295,24 @@ var eraseOverlapIntervals = function(intervals) {
return intervals.length - count return intervals.length - count
}; };
``` ```
- 按左边界排序
```js
var eraseOverlapIntervals = function(intervals) {
// 按照左边界升序排列
intervals.sort((a, b) => a[0] - b[0])
let count = 1
let end = intervals[intervals.length - 1][0]
// 倒序遍历,对单个区间来说,左边界越大越好,因为给前面区间的空间越大
for(let i = intervals.length - 2; i >= 0; i--) {
if(intervals[i][1] <= end) {
count++
end = intervals[i][0]
}
}
// count 记录的是最大非重复区间的个数
return intervals.length - count
}
```
----------------------- -----------------------