সমস্যা
জাভাস্ক্রিপ্ট ফাংশন যা একটি 2-ডি অ্যারে, অ্যার, প্রথম এবং একমাত্র যুক্তি হিসাবে নেয়৷
আমাদের ইনপুট অ্যারের প্রতিটি সাবয়ারে হল ঠিক দুটি সংখ্যার একটি অ্যারে, একটি সময় ব্যবধান নির্দিষ্ট করে৷
আমাদের ফাংশন অ্যারে অ্যারের অন্য একটি ব্যবধান দ্বারা আচ্ছাদিত সমস্ত বিরতি মুছে ফেলা উচিত। ব্যবধান [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