JavaScript 中移除已列出的间隔
问题
此 JavaScript 函数的第一且唯一个参数是二维数组 arr。
我们的输入数组的每个子数组都是一个由两个数字组成的数组,指定了一个时间间隔。
如果且仅当 c <= a 且 b <= d 时,时间间隔 [a,b) 被时间间隔 [c,d) 覆盖。我们的函数最终应该返回数组中剩余的时间间隔的数量。
举例而言,如果输入函数为 -
const arr = [ [2, 5], [5, 7], [3, 9] ];
那么输出应为 -
const output = 2;
输出说明
时间间隔 [5, 7] 被 [3, 9] 覆盖,因此将其移除。
示例
代码为 -
const arr = [
[2, 5],
[5, 7],
[3, 9]
];
const removeCovered = (arr = []) => {
arr.sort(([a, b], [c, d]) => (a === c ? d - b : a - c));
let last = arr[0];
let count = arr.length;
for(let i = 1; i < arr.length; i++){
const [a, b] = last;
const [c, d] = arr[i];
if(c >= a && d <= b){
count -= 1;
}else{
last = arr[i];
};
};
return count;
};
console.log(removeCovered(arr));输出
控制台中的输出为 -
2
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP