কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে ইন্টারভাল অ্যারে-এর ইন্টারসেকশন খুঁজে বের করা


সমস্যা

জাভাস্ক্রিপ্ট ফাংশন যা দুটি ইন্টারভাল অ্যারে (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 ] ]
  1. জাভাস্ক্রিপ্ট const কীওয়ার্ড

  2. জাভাস্ক্রিপ্টে রিপিটিভ এন্ট্রি বিশিষ্ট অ্যারেতে ইন্টারসেকশন বের করা

  3. জাভাস্ক্রিপ্টে ম্যাট্রিক্সে শব্দ খুঁজে বের করা

  4. জাভাস্ক্রিপ্টে তিনটি সর্টেড অ্যারের ইন্টারসেকশন (Intersection) বের করা