删除 JavaScript 中已经列出的间隔
问题
接受二维数组arr作为第一个也是唯一参数的JavaScript函数。
我们输入数组的每个子数组都是一个正好包含两个数字的数组,指定了一个时间间隔。
我们的函数应该删除数组arr中被另一个区间覆盖的所有区间。区间[a,b)被区间[c,d)覆盖,当且仅当c<=a且b<=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
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短