Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में मैट्रिक्स में एक विशिष्ट जोड़ी खोजें

मान लीजिए कि पूर्णांकों का एक n x n आव्यूह मैट है। हमें इंडेक्स के सभी विकल्पों पर मैट (सी, डी) - मैट (ए, बी) का अधिकतम मूल्य खोजना होगा। यहाँ हमें यह ध्यान रखना है कि 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 होगा। ऐसा इसलिए है क्योंकि mat[4, 2] - mat[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++ प्रोग्राम एक ग्राफ मैट्रिक्स के व्युत्क्रम को खोजने के लिए

    यह एक ग्राफ मैट्रिक्स के व्युत्क्रम को खोजने के लिए एक C++ प्रोग्राम है। मैट्रिक्स का व्युत्क्रम केवल तभी मौजूद होता है जब मैट्रिक्स गैर-एकवचन होता है, अर्थात, सारणिक 0 नहीं होना चाहिए। मैट्रिक्स का व्युत्क्रम कई तरीकों से पता लगाया जा सकता है। यहाँ हम आसन्न मैट्रिक्स और उसके सारणिक का उपयोग करके एक

  1. C++ प्रोग्राम एक ग्राफ मैट्रिक्स के स्थानान्तरण का पता लगाने के लिए

    इस कार्यक्रम में हम एक मैट्रिक्स लेते हैं और मैट्रिक्स के स्थानान्तरण को प्रिंट करते हैं। ट्रांसपोज़ मैट्रिक्स में, पंक्तियाँ कॉलम बन जाती हैं और इसके विपरीत। एल्गोरिदम Begin Take number of rows and columns of the matrix. Take The elements of the matrix and stored in the matrix ‘A’

  1. C++ प्रोग्राम एक मैट्रिक्स के स्थानान्तरण को खोजने के लिए

    मैट्रिक्स संख्याओं का एक आयताकार सरणी है जिसे पंक्तियों और स्तंभों के रूप में व्यवस्थित किया जाता है। मैट्रिक्स का ट्रांसपोज़ एक नया मैट्रिक्स है जिसमें मूल की पंक्तियाँ अब कॉलम हैं और इसके विपरीत। उदाहरण के लिए। नीचे एक मैट्रिक्स दिया गया है - 1 2 3 4 5 6 7 8 9 उपरोक्त मैट्रिक्स का स्थानान्तरण इस