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

C++-এ ২D অ্যারেতে পিক এলিমেন্ট বের করা

একটি ২D অ্যারে দেওয়া থাকলে, সেটিতে পিক এলিমেন্ট (চারদিকের প্রতিবেশী চেয়ে বড় মান বালা এলিমেন্ট) বের করতে হবে।

পদ্ধতি

  • ২D অ্যারে ইনিশিয়ালাইজ করুন।
  • নেস্টেড লুপ দিয়ে সব এলিমেন্ট চেক করুন।
  • কーナー, এজ, এবং মিডল এলিমেন্টের জন্য আলাদা শর্ত লিখুন।
  • প্রতিবেশী ৪টি (কーナー), ৫টি (এজ), বা ৮টি (মিডল) এলিমেন্টের সাথে তুলনা করুন।
  • প্রথম পিক এলিমেন্ট পাওয়া গেলে রিটার্ন করুন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;

const int MAX = 256;

int findPeakElement(int arr[][MAX], int rows, int cols) {
    for (int i = 0; i < rows; i++)
        for (int j = 0; j < cols; 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==cols-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==cols-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==cols-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-1][j] && arr[i][j] > arr[i+1][j] && arr[i][j] > arr[i][j-1] && arr[i][j] > arr[i][j+1]) 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}};
    cout << findPeakElement(arr, 4, 4) << endl;
    return 0;
}

আউটপুট

7
  1. সি++ প্রোগ্রাম: অ্যারেতে প্রতিটি উপাদানের জন্য সবচেয়ে নিকটবর্তী বড় মান (Closest Greater Value) খুঁজে বের করা

  2. অ্যারে উপাদানগুলোর সারপাসার (Surpasser) কাউন্ট (C++)

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

  4. অ্যারেতে সবচেয়ে বড় এলিমেন্ট (Largest Element) বের করার C++ প্রোগ্রাম