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

C++-এ স্কয়ার ম্যাট্রিক্সে সর্বোচ্চ ও ন্যূনতম মান

সমস্যা বিবরণ

n*n অর্ডারের একটি স্কয়ার ম্যাট্রিক্স দেওয়া আছে, ম্যাট্রিক্স থেকে সর্বোচ্চ এবং ন্যূনতম মান বের করুন।

উদাহরণ

যদি দেওয়া ম্যাট্রিক্স হয়:

{{15, 17, 19}, {5, 1, 7}, {14, 5, 16}} 
তাহলে ন্যূনতম সংখ্যা হল ১ এবং সর্বোচ্চ সংখ্যা হল ১৯

অ্যালগরিদম

  • ম্যাট্রিক্স থেকে দুটি উপাদান বেছে নিন, একটি রোয়ের শুরু থেকে আরেকটি একই রোয়ের শেষ থেকে।
  • তুলনা করুন এবং তারপর ছোটটিকে ম্যাট্রিক্সের মিনিমামের সাথে এবং বড়টিকে ম্যাট্রিক্সের ম্যাক্সিমামের সাথে তুলনা করুন।
  • দুই উপাদানের জন্য ৩টি তুলনা লাগে, তাই পুরো ম্যাট্রিক্স ট্রভার্স করার জন্য মোট ৩/২ n2 তুলনা লাগবে।

উদাহরণ

#include <bits/stdc++.h> 
#define MAX 200 
using namespace std; 
void getMinMax(int matrix[MAX][MAX], int n) { 
    int min = INT_MAX; 
    int max = INT_MIN; 
    for (int i = 0; i < n; ++i) { 
        for (int j = 0; j <= n / 2; ++j) { 
            if (matrix[i][j] > matrix[i][n - j - 1]) { 
                if (min > matrix[i][n - j - 1]) { 
                    min = matrix[i][n - j - 1]; 
                } 
                if (max < matrix[i][j]) { 
                    max = matrix[i][j]; 
                } 
            } else { 
                if (min > matrix[i][j]) { 
                    min = matrix[i][j]; 
                } 
                if (max < matrix[i][n - j - 1]) { 
                    max = matrix[i][n - j - 1]; 
                } 
            } 
        } 
    } 
    cout << "Maximum = " << max << ", Minimum = " << min << endl; 
} 
int main() { 
    int matrix[MAX][MAX] = { {15, 17, 19}, {5, 1, 7}, {14, 5, 16} }; 
    getMinMax(matrix, 3); 
    return 0; 
}

আউটপুট

Maximum = 19, Minimum = 1
  1. C++-তে লিংকড লিস্ট থেকে K দিয়ে বিভাজ্য সর্বোচ্চ ও ন্যূনতম এলিমেন্ট বের করা

  2. C++-এ m টিমে n মানুষের ন্যূনতম ও সর্বোচ্চ জোড়া সংখ্যা

  3. C++-এ সিংলি সার্কুলার লিংকড লিস্টে ন্যূনতম ও সর্বোচ্চ মান বের করা

  4. C++-এ সিঙ্গলি লিংকড লিস্ট-এ ন্যূনতম এবং সর্বোচ্চ প্রাইম নম্বর বের করা