删除 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 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短