কম্পিউটার

C++ এ একটি 2D অ্যারেতে একটি শীর্ষ উপাদান খুঁজুন


এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখতে যাচ্ছি যা একটি 2D অ্যারেতে শীর্ষ উপাদান খুঁজে পায়।

একটি মৌলকে পিক এলিমেন্ট বলা হয় যদি এর চারপাশের সমস্ত উপাদান উপাদানের থেকে ছোট হয়।

আসুন সমস্যা সমাধানের পদক্ষেপগুলি দেখি৷

  • ডামি ডেটা দিয়ে 2D অ্যারে শুরু করুন।

  • 2D অ্যারেতে পুনরাবৃত্তি করুন৷

    • প্রথমে, 2D অ্যারের কোণার উপাদানগুলি পরীক্ষা করুন৷

    • এরপর, 2D অ্যারের প্রথম এবং শেষ সারির শর্ত লিখুন।

    • এখন, 2D অ্যারের প্রথম এবং শেষ কলামগুলি পরীক্ষা করুন৷

    • এবং অবশেষে, মধ্যম উপাদানগুলি পরীক্ষা করুন৷

    • প্রতিটি ক্ষেত্রে, আমাদের বর্তমান উপাদানটিকে তার পার্শ্ববর্তী উপাদানগুলির সাথে তুলনা করতে হবে। এটি উপরের শর্তের উপর ভিত্তি করে পরিবর্তিত হয়৷

    • আপনি যেখানে ফলাফল পাবেন সেখানে মান ফেরত দিন।

উদাহরণ

আসুন কোডটি দেখি।

#include <bits/stdc++.h>
using namespace std;
const int MAX = 256;
int findPeakElement(int arr[][MAX], int rows, int columns) {
   for (int i = 0; i < rows; i++) {
      for (int j = 0; j < columns; j++) {
         if (i == 0 && j == 0) {
            if (arr[i][j] > arr[i + 1][j] && arr[i][j] > arr[i][j + 1]) {
               return arr[i][j];
            }
         }
         else if (i == 0 && j == columns - 1) {
            if (arr[i][j] > arr[i + 1][j] && arr[i][j] > arr[i][j - 1]) {
               return arr[i][j];
            }
         }
         else if (i == rows - 1 && j == 0) {
            if (arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i][j + 1]) {
               return arr[i][j];
            }
         }
         else if (i == rows - 1 && j == columns - 1) {
            if (arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i][j - 1]) {
               return arr[i][j];
            }
         }
         else if (i == 0) {
            if (arr[i][j] > arr[i][j - 1] && arr[i][j] > arr[i][j + 1] && arr[i][j] > arr[i + 1][j]) {
               return arr[i][j];
            }
         }
         else if (i == rows - 1) {
            if (arr[i][j] > arr[i][j - 1] && arr[i][j] > arr[i][j + 1] && arr[i][j] > arr[i - 1][j]) {
               return arr[i][j];
            }
         }
         else if (j == 0) {
            if (arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i + 1][j] && arr[i][j] > arr[i][j + 1]) {
               return arr[i][j];
            }
         }
         else if (j == columns - 1) {
            if (arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i + 1][j] && arr[i][j] > arr[i][j - 1]) {
               return arr[i][j];
            }
         }
         else {
            if (arr[i][j] > arr[i][j - 1] && arr[i][j] > arr[i][j + 1] && arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i + 1][j]) {
               return arr[i][j];
            }
         }
      }
   }
   return -1;
}
int main() {
   int arr[][MAX] = {
      { 1, 2, 3, 4 },
      { 2, 3, 4, 5 },
      { 1, 3, 7, 5 },
      { 1, 2, 6, 6 } };
   int rows = 4, columns = 4;
   cout << findPeakElement(arr, rows, columns) << endl;
   return 0;
}

আউটপুট

আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।

7

উপসংহার

টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।


  1. C++ এ অ্যারের প্রতিটি উপাদানের জন্য নিকটতম মান খুঁজুন

  2. C++-এ অ্যারের প্রতিটি উপাদানের সারপাসার কাউন্ট খুঁজুন

  3. বাইনারি অনুসন্ধান পদ্ধতি ব্যবহার করে একটি অ্যারের শীর্ষ উপাদান খুঁজে পেতে C++ প্রোগ্রাম

  4. একটি অ্যারের সবচেয়ে বড় উপাদান খুঁজে পেতে C++ প্রোগ্রাম