/**
* @param {number[][]} intervals
* @return {number[][]}
*/
var merge = function(arr) {
if (arr.length <= 1) return arr;
// sort
arr.sort((a, b) => {
if (a[0] == b[0])
return a[1] - b[1];
return a[0] - b[0];
});
//merge
let prev = arr.shift();
const answer = [prev];
for (const curr of arr) {
if (prev[1] >= curr[0]) {
prev[1] = Math.max(prev[1], curr[1]);
continue;
}
answer.push(curr);
prev = curr;
}
return answer;
};
// var merge = function(arr) {
// let len = arr.length;
// // sort
// arr.sort((a, b) => {
// if (a[0] == b[0])
// return a[1] - b[1];
// return a[0] - b[0];
// });
// // merge
// const answer = [];
// for (let i = 0; i < len - 1; i++) {
// const currS = arr[i][0];
// const currE = arr[i][1];
// const nextS = arr[i + 1][0];
// const nextE = arr[i + 1][1];
// if (currE >= nextS) {
// // console.log('>> ', arr[i], arr[i + 1], len, i);
// if (currE >= nextE) {
// arr.splice(i + 1, 1);
// } else {
// arr[i + 1][0] = currS;
// arr.splice(i, 1);
// }
// // console.log(arr);
// i--;
// len = arr.length;
// }
// }
// return arr;
// };