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