কম্পিউটার

C++ এ ম্যাট্রিক্সে একটি নির্দিষ্ট জোড়া খুঁজুন


ধরুন পূর্ণসংখ্যার একটি n x n ম্যাট্রিক্স ম্যাট আছে। আমাদের সূচকের সমস্ত পছন্দের উপর ম্যাট(c, d)- - mat(a, b) এর সর্বোচ্চ মান খুঁজে বের করতে হবে। এখানে আমাদের মনে রাখতে হবে c> a এবং d> b। তাই ম্যাট্রিক্স যদি −

এর মত হয়


1 2 -1 -4 -20
-8 -3 4 2 1
3 8 6 1 3
-4 -1 1 7 -6
0 -4 10 -5 1

আউটপুট 18 হবে। এর কারণ হল ম্যাট[4, 2] - ম্যাট[1, 0] =18-এর সর্বোচ্চ পার্থক্য রয়েছে।

এটি সমাধান করার জন্য আমরা ম্যাট্রিক্সটিকে এমনভাবে প্রিপ্রসেস করব যাতে সূচক(i, j) ম্যাট্রিক্সে (i, j) থেকে (n - 1, n - 1) পর্যন্ত উপাদানগুলির সর্বাধিক সঞ্চয় করে এবং এই প্রক্রিয়ায় এখনও পর্যন্ত পাওয়া সর্বাধিক মান আপডেট করতে থাকে . তারপর আমরা সর্বোচ্চ মান ফেরত দেব।

উদাহরণ

#include<iostream>
#define N 5
using namespace std;
int findMaxValue(int matrix[][N]) {
   int maxValue = -99999;
   int arr_max[N][N];
   arr_max[N-1][N-1] = matrix[N-1][N-1];
   int max_val = matrix[N-1][N-1];
   for (int j = N - 2; j >= 0; j--) {
      if (matrix[N-1][j] > max_val)
      max_val = matrix[N - 1][j];
      arr_max[N-1][j] = max_val;
   }
   max_val = matrix[N - 1][N - 1];
   for (int i = N - 2; i >= 0; i--) {
      if (matrix[i][N - 1] > max_val)
      max_val = matrix[i][N - 1];
      arr_max[i][N - 1] = max_val;
   }
   for (int i = N-2; i >= 0; i--) {
      for (int j = N-2; j >= 0; j--) {
         if (arr_max[i+1][j+1] - matrix[i][j] > maxValue)
         maxValue = arr_max[i + 1][j + 1] - matrix[i][j];
         arr_max[i][j] = max(matrix[i][j],max(arr_max[i][j + 1],arr_max[i + 1][j]) );
      }
   }
   return maxValue;
}
int main() {
   int mat[N][N] = {
      { 1, 2, -1, -4, -20 },
      { -8, -3, 4, 2, 1 },
      { 3, 8, 6, 1, 3 },
      { -4, -1, 1, 7, -6 },
      { 0, -4, 10, -5, 1 }
   };
   cout << "Maximum Value is " << findMaxValue(mat);
}

আউটপুট

Maximum Value is 18

  1. C++ বুলিয়ান ম্যাট্রিক্স

  2. একটি গ্রাফ ম্যাট্রিক্সের বিপরীত অনুসন্ধান করার জন্য C++ প্রোগ্রাম

  3. একটি গ্রাফ ম্যাট্রিক্সের স্থানান্তর খুঁজে পেতে C++ প্রোগ্রাম

  4. একটি ম্যাট্রিক্সের স্থানান্তর খুঁজে পেতে C++ প্রোগ্রাম