diff --git a/problems/0435.无重叠区间.md b/problems/0435.无重叠区间.md index ae037f17..4e850114 100644 --- a/problems/0435.无重叠区间.md +++ b/problems/0435.无重叠区间.md @@ -274,6 +274,7 @@ func min(a,b int)int{ } ``` Javascript: +- 按右边界排序 ```Javascript var eraseOverlapIntervals = function(intervals) { intervals.sort((a, b) => { @@ -285,7 +286,7 @@ var eraseOverlapIntervals = function(intervals) { for(let i = 1; i < intervals.length; i++) { let interval = intervals[i] - if(interval[0] >= right) { + if(interval[0] >= end) { end = interval[1] count += 1 } @@ -294,6 +295,24 @@ var eraseOverlapIntervals = function(intervals) { 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 +} +``` -----------------------