Skip to content

Commit bb198e2

Browse files
committed
❌ [57] a1 - failed
1 parent 3626f71 commit bb198e2

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed

57/my_solution.js

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/**
2+
* @param {number[][]} intervals
3+
* @param {number[]} newInterval
4+
* @return {number[][]}
5+
*/
6+
const insert = (intervals, newInterval) => {
7+
if (0 === intervals.length) return [newInterval];
8+
let deleteList = [], replace = []; // [3, 10] // use [1] when replace is not empty
9+
10+
for (let i = 0; i < intervals.length; i++) {
11+
if (0 === newInterval.length) break;
12+
if (intervals[i][0] <= newInterval[0] && newInterval[0] < intervals[i][1]) {
13+
console.log(`${newInterval[0]} is within ${intervals[i][0]} and ${intervals[i][1]}`)
14+
// let curr = newInterval.shift();
15+
deleteList.push(i);
16+
17+
// use [1] when replace is not empty
18+
replace.push((replace.length > 0) ? intervals[i][1] : intervals[i][0]);
19+
newInterval.shift();
20+
} else {
21+
console.log(`${newInterval[0]} is NOT within ${intervals[i][0]} and ${intervals[i][1]}`)
22+
if (newInterval[0] < intervals[i][0]) {
23+
deleteList.push(i);
24+
replace.push(newInterval.shift());
25+
}
26+
}
27+
}
28+
29+
console.log("deleteList")
30+
console.log(deleteList)
31+
console.log("replace")
32+
console.log(replace)
33+
console.log("intervals")
34+
console.log(intervals)
35+
intervals.splice(deleteList[0], deleteList[1] || 0, replace)
36+
return intervals;
37+
};
38+
39+
40+
// let x = insert([[1, 3], [6, 9]], [2, 5]); // [[1,5],[6,9]]
41+
// let x = insert([[1, 2], [3, 5], [6, 7], [8, 10], [12, 16]], [4, 8]); // [ [ 1, 2 ], [ 3, 10 ], [ 12, 16 ] ]
42+
// let x = insert([], [5, 7]); // [5,7]
43+
let x = insert([[1, 5]], [2, 3]); // [1,5]
44+
45+
46+
console.log('x')
47+
console.log(x)

57/solution.js

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/**
2+
* @param {number[][]} intervals
3+
* @param {number[]} newInterval
4+
* @return {number[][]}
5+
*/
6+
const insert = (intervals, newInterval) => {
7+
let deleteList = [], replace = []; // [3, 10] // use [1] when replace is not empty
8+
9+
for (let i = 0; i < intervals.length; i++) {
10+
if (0 === newInterval.length) break;
11+
if (intervals[i][0] <= newInterval[0] && newInterval[0] < intervals[i][1]) {
12+
deleteList.push(i);
13+
14+
replace.push((replace.length > 0) ? intervals[i][1] : intervals[i][0]);
15+
newInterval.shift();
16+
}
17+
}
18+
19+
intervals.splice(deleteList[0], deleteList[1], replace)
20+
return intervals;
21+
};

0 commit comments

Comments
 (0)