সমস্যা
জাভাস্ক্রিপ্ট ফাংশন যা একটি ২ডি অ্যারে (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