समस्या
जावास्क्रिप्ट फ़ंक्शन जो 2-डी सरणी में लेता है, गिरफ्तारी, पहले और एकमात्र तर्क के रूप में।
हमारे इनपुट एरे का प्रत्येक सबअरे एक समय अंतराल को निर्दिष्ट करते हुए, ठीक दो संख्याओं की एक सरणी है।
हमारे फ़ंक्शन को उन सभी अंतरालों को हटा देना चाहिए जो सरणी गिरफ्तारी में किसी अन्य अंतराल द्वारा कवर किए गए हैं। अंतराल [ए, बी) अंतराल द्वारा कवर किया जाता है [सी, डी) अगर और केवल अगर सी <=ए और बी <=डी। हमारे फ़ंक्शन को अंततः सरणी में शेष अंतरालों की संख्या वापस करनी चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
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