AcWing 803. 区间合并 ( JavaScript )
原题链接
简单
作者:
gaobowen
,
2019-11-15 17:21:16
,
所有人可见
,
阅读 843
let inputRanges = [];
let getRangeCount = (ranges) => {
ranges.sort((a, b) => a[0] - b[0]);
let result = 1;
let curr = ranges[0];
for (let i = 1; i < ranges.length; i++) {
if (ranges[i][0] <= curr[1])
curr[1] = Math.max(curr[1], ranges[i][1]);
else {
result++;
curr = ranges[i++];
}
}
return result;
}
let buf = '';
process.stdin.on('readable', function () {
let chunk = process.stdin.read();
if (chunk) buf += chunk.toString();
});
let getInputArgs = line =>
line.split(' ').filter(s => s !== '').map(x => parseInt(x));
process.stdin.on('end', function () {
let n = 0;
buf.split('\n').forEach(function (line, lineIdx) {
if (lineIdx === 0) {
let a = getInputArgs(line);
n = a[0];
} else if (lineIdx <= n) {
inputRanges.push(getInputArgs(line));
if (lineIdx === n)
console.log(getRangeCount(inputRanges));
}
});
});