समस्या
JavaScript फ़ंक्शन जो पहले और एकमात्र आर्गुमेंट के रूप में एक 2-D सरणी arr लेता है।
हमारे इनपुट सरणी का प्रत्येक उपसरणी ठीक दो संख्याओं की एक सरणी है, जो एक समय अंतराल निर्दिष्ट करती है।
हमारे फ़ंक्शन को सरणी 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