Skip to content

Commit a407422

Browse files
committed
增加435.无重叠区间 js解法
1 parent 174581c commit a407422

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

problems/0435.无重叠区间.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ func min(a,b int)int{
274274
}
275275
```
276276
Javascript:
277+
- 按右边界排序
277278
```Javascript
278279
var eraseOverlapIntervals = function(intervals) {
279280
intervals.sort((a, b) => {
@@ -285,7 +286,7 @@ var eraseOverlapIntervals = function(intervals) {
285286

286287
for(let i = 1; i < intervals.length; i++) {
287288
let interval = intervals[i]
288-
if(interval[0] >= right) {
289+
if(interval[0] >= end) {
289290
end = interval[1]
290291
count += 1
291292
}
@@ -294,6 +295,24 @@ var eraseOverlapIntervals = function(intervals) {
294295
return intervals.length - count
295296
};
296297
```
298+
- 按左边界排序
299+
```js
300+
var eraseOverlapIntervals = function(intervals) {
301+
// 按照左边界升序排列
302+
intervals.sort((a, b) => a[0] - b[0])
303+
let count = 1
304+
let end = intervals[intervals.length - 1][0]
305+
// 倒序遍历,对单个区间来说,左边界越大越好,因为给前面区间的空间越大
306+
for(let i = intervals.length - 2; i >= 0; i--) {
307+
if(intervals[i][1] <= end) {
308+
count++
309+
end = intervals[i][0]
310+
}
311+
}
312+
// count 记录的是最大非重复区间的个数
313+
return intervals.length - count
314+
}
315+
```
297316

298317

299318
-----------------------

0 commit comments

Comments
 (0)