File tree Expand file tree Collapse file tree 1 file changed +20
-1
lines changed Expand file tree Collapse file tree 1 file changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -274,6 +274,7 @@ func min(a,b int)int{
274
274
}
275
275
```
276
276
Javascript:
277
+ - 按右边界排序
277
278
``` Javascript
278
279
var eraseOverlapIntervals = function (intervals ) {
279
280
intervals .sort ((a , b ) => {
@@ -285,7 +286,7 @@ var eraseOverlapIntervals = function(intervals) {
285
286
286
287
for (let i = 1 ; i < intervals .length ; i++ ) {
287
288
let interval = intervals[i]
288
- if (interval[0 ] >= right ) {
289
+ if (interval[0 ] >= end ) {
289
290
end = interval[1 ]
290
291
count += 1
291
292
}
@@ -294,6 +295,24 @@ var eraseOverlapIntervals = function(intervals) {
294
295
return intervals .length - count
295
296
};
296
297
```
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
+ ```
297
316
298
317
299
318
-----------------------
You can’t perform that action at this time.
0 commit comments