কম্পিউটার

জাভাস্ক্রিপ্টে একটি সাজানো 2-ডি অ্যারেতে অনুসন্ধান করা হচ্ছে


আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসাবে সংখ্যার অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসাবে একটি সংখ্যা নেয়। সাবঅ্যারেতে ক্রমবর্ধমান ক্রমানুসারে বাছাই করা সংখ্যা থাকে এবং পূর্ববর্তী সাবয়ারের কোনো উপাদান পরবর্তী সাবয়ারের যেকোনো উপাদানের চেয়ে বড় হয় না।

ফাংশনটি বাইনারি অনুসন্ধান অ্যালগরিদম ব্যবহার করে অ্যারের সাজানো অ্যারেতে এই সেকেন্ড আর্গুমেন্ট হিসাবে দেওয়া উপাদানটি অনুসন্ধান করতে হবে৷

উপাদানটি বিদ্যমান থাকলে ফাংশনটি সত্য, অন্যথায় মিথ্যা প্রত্যাবর্তন করা উচিত।

যেমন −

যদি ইনপুট অ্যারে −

হয়
const arr = [
   [2, 6, 9, 11],
   [13, 16, 18, 19, 21],
   [24, 26, 28, 31]
];
const num = 21;

তারপর আউটপুট −

হওয়া উচিত
const output = true;

উদাহরণ

নিম্নলিখিত কোড -

const arr = [
   [2, 6, 9, 11],
   [13, 16, 18, 19, 21],
   [24, 26, 28, 31]
];
const num = 21;
const search2D = (array = [], target) => {
   const h = array.length;
   const w = h > 0 ? array[0].length : 0;
   if (h === 0 || w === 0) { return false; }
   const arr = getArr();
   if (!arr) { return false; }
      return binarySearch(arr, target) !== null;
   function getArr() {
      for (let i = 0; i < h; i++) {
         let arr = array[i];
         if (arr[0] <= target && target <= arr[arr.length - 1]) {
            return arr;
         }
      }
      return null;
   }
   function binarySearch(arr, t) {
      let left = 0;
      let right = arr.length - 1;
      while (left <= right) {
         if (arr[left] === t) {
            return left;
         }
         if (arr[right] === t) {
            return right;
         }
         let mid = Math.floor((left + right) / 2);
         if (arr[mid] === t) {
            return mid;
         }
         if (arr[mid] < t) {
            left = mid + 1;
         }
         else if (arr[mid] > t) {
            right = mid - 1;
         }
      }
      return null;
   }
};
console.log(search2D(arr, num))

আউটপুট

নিম্নোক্ত কনসোল আউটপুট -

true

  1. জাভাস্ক্রিপ্টে অ্যারে স্লাইস()

  2. জাভাস্ক্রিপ্টে অ্যারে শিফট()

  3. জাভাস্ক্রিপ্টে অ্যারে রিভার্স()

  4. জাভাস্ক্রিপ্টে অ্যারে ডি-স্ট্রাকচারিং।