Skip to content

Commit 52126f9

Browse files
Merge pull request youngyangyang04#1251 from xiaofei-2020/greed18
添加(0435.无重叠区间.md):增加typescript版本
2 parents 02c0be3 + a0c16d4 commit 52126f9

File tree

1 file changed

+50
-1
lines changed

1 file changed

+50
-1
lines changed

problems/0435.无重叠区间.md

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ func min(a,b int)int{
264264
}
265265
return a
266266
}
267-
```
267+
```
268268

269269
### Javascript:
270270
- 按右边界排序
@@ -307,6 +307,55 @@ var eraseOverlapIntervals = function(intervals) {
307307
}
308308
```
309309

310+
### TypeScript
311+
312+
> 按右边界排序,从左往右遍历
313+
314+
```typescript
315+
function eraseOverlapIntervals(intervals: number[][]): number {
316+
const length = intervals.length;
317+
if (length === 0) return 0;
318+
intervals.sort((a, b) => a[1] - b[1]);
319+
let right: number = intervals[0][1];
320+
let count: number = 1;
321+
for (let i = 1; i < length; i++) {
322+
if (intervals[i][0] >= right) {
323+
count++;
324+
right = intervals[i][1];
325+
}
326+
}
327+
return length - count;
328+
};
329+
```
330+
331+
> 按左边界排序,从左往右遍历
332+
333+
```typescript
334+
function eraseOverlapIntervals(intervals: number[][]): number {
335+
if (intervals.length === 0) return 0;
336+
intervals.sort((a, b) => a[0] - b[0]);
337+
let right: number = intervals[0][1];
338+
let tempInterval: number[];
339+
let resCount: number = 0;
340+
for (let i = 1, length = intervals.length; i < length; i++) {
341+
tempInterval = intervals[i];
342+
if (tempInterval[0] >= right) {
343+
// 未重叠
344+
right = tempInterval[1];
345+
} else {
346+
// 有重叠,移除当前interval和前一个interval中右边界更大的那个
347+
right = Math.min(right, tempInterval[1]);
348+
resCount++;
349+
}
350+
}
351+
return resCount;
352+
};
353+
```
354+
355+
356+
357+
358+
310359

311360
-----------------------
312361
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>

0 commit comments

Comments
 (0)