Skip to content

Commit 6cf1de5

Browse files
committed
feat(soobing): week13 > insert-interval
1 parent 4c37aa7 commit 6cf1de5

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

insert-interval/soobing.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
function insert(intervals: number[][], newInterval: number[]): number[][] {
2+
const result: number[][] = [];
3+
let i = 0;
4+
5+
while (i < intervals.length && newInterval[0] > intervals[i][1]) {
6+
result.push(intervals[i]);
7+
i++;
8+
}
9+
10+
while (i < intervals.length && newInterval[1] >= intervals[i][0]) {
11+
newInterval[0] = Math.min(intervals[i][0], newInterval[0]);
12+
newInterval[1] = Math.max(intervals[i][1], newInterval[1]);
13+
i++;
14+
}
15+
result.push(newInterval);
16+
17+
while (i < intervals.length) {
18+
result.push(intervals[i]);
19+
i++;
20+
}
21+
22+
return result;
23+
}

0 commit comments

Comments
 (0)