সমস্যা
জাভাস্ক্রিপ্ট ফাংশন যা দুটি ইন্টারভাল অ্যারে (arr1, arr2) নেবে যেগুলো pairwise disjoint এবং সর্ট করা আছে। একটি ক্লোজড ইন্টারভাল [a, b] (a <= b) রিয়েল নাম্বার x এর সেট বোঝায় যেন a <= x <= b। দুটি ক্লোজড ইন্টারভালের ইন্টারসেকশন হয় একটি রিয়েল নাম্বার সেট যা হয় খালি, অথবা একটি ক্লোজড ইন্টারভাল হিসেবে রিপ্রেজেন্ট করা যায়। উদাহরণস্বরূপ, [1, 3] এবং [2, 4]-এর ইন্টারসেকশন হল [2, 3]। ফাংশনটি এই দুটি ইন্টারভাল অ্যারে-এর ইন্টারসেকশন রিটার্ন করবে।
উদাহরণস্বরূপ, ইনপুট যদি হয় –
const arr1 = [[0,2],[5,10],[13,23],[24,25]]; const arr2 = [[1,5],[8,12],[15,24],[25,26]];
তবে আউটপুট হবে –
const output = [[1,2],[5,5],[8,10],[15,23],[24,24],[25,25]];
উদাহরণ
কোডটি নিচের মতো –
const arr1 = [[0,2],[5,10],[13,23],[24,25]]; const arr2 = [[1,5],[8,12],[15,24],[25,26]]; const findIntersection = function (A, B) { const res = []; let i = 0; let j = 0; while (i < A.length && j < B.length) { const [a, b] = A[i]; const [c, d] = B[j]; const lo = Math.max(a, c); const hi = Math.min(b, d); if (lo <= hi) { res.push([Math.max(a, c), Math.min(b, d)]); } if (b < d) { i++; } else { j++; } } return res; }; console.log(findIntersection(arr1, arr2));আউটপুট
কনসোলে আউটপুট হবে –
[ [ 1, 2 ], [ 5, 5 ], [ 8, 10 ], [ 15, 23 ], [ 24, 24 ], [ 25, 25 ] ]