AcWing 803. 区间合并
原题链接
简单
作者:
一个不正经的程序员
,
2025-04-14 00:16:39
· 中国香港
,
所有人可见
,
阅读 1
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
const input = [];
readline.on('line', (line) => {
input.push(line.split(' ').map(v=> Number(v)));
});
readline.on('close',()=> {
input.shift()
console.log(merge(input));
})
function merge(intervals) {
if (intervals.length === 0) return 0;
if (intervals.length === 1) return 1;
intervals.sort((a, b) => a[0] - b[0])
const merged = [intervals[0]];
for (let i = 0; i < intervals.length; i++) {
const [currentLeft, currentRight] = intervals[i];
const lasrMerge = merged[merged.length - 1];
if (currentLeft <= lasrMerge[1] && currentRight >= lasrMerge[1]) {
lasrMerge[1] = currentRight;
} else if (currentLeft > lasrMerge[1]) {
merged.push(intervals[i]);
}
}
return merged.length;
}