इस समस्या में, हमें दो मैट्रिक्स मैट [] [] दिया जाता है। हमारा काम C++ में मैट्रिक्स में प्रत्येक पंक्ति से अधिकतम तत्वों को खोजने के लिए एक प्रोग्राम बनाना है।
समस्या का विवरण
यहां, हम मैट्रिक्स की प्रत्येक पंक्ति से एक तत्व को इस तरह से लेकर अधिकतम योग प्राप्त करेंगे कि वर्तमान पंक्ति का तत्व अंतिम पंक्ति तत्व से अधिक है जिसे योग माना जाता है। हम उपरोक्त शर्त का पालन करने वाले तत्वों का अधिकतम योग पाएंगे और यदि संभव नहीं है तो -1 प्रिंट करें।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
mat[][] = {{4, 6, 1}, {2, 5, 7}, {9, 1, 2}}
आउटपुट
22
स्पष्टीकरण
1st row = 6 2nd row = 7 3rd row = 9 Sum = 6 + 7 + 9 = 22
समाधान दृष्टिकोण
मैट्रिक्स की आखिरी पंक्ति से शुरू करना एक आसान समाधान है। यहां सबसे बड़ी संख्या ज्ञात करें और मैक्ससम में जोड़ें और फिर एक पंक्ति को ऊपर ले जाएं, इसके नीचे की पंक्ति के सबसे बड़े तत्व से कम सबसे बड़ी संख्या ज्ञात करें। ऐसा तब तक करें जब तक आप शीर्ष पंक्ति तक नहीं पहुंच जाते। अगर हमें अधिकतम संख्या से कम कोई संख्या नहीं मिलती है तो हम -1 वापस कर देंगे।
उदाहरण
हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम,
#include <iostream> using namespace std; # define row 3 # define col 3 int RowMaxSum(int a[row][col]){ int maxValLastRow = 10000; int maxSum = 0; for (int i = row - 1; i >= 0; i--){ int maxNo = -1; for (int j = 0; j < col; j++) if (maxValLastRow > a[i][j] && a[i][j] > maxNo) maxNo = a[i][j]; if (maxNo == -1) return -1; maxValLastRow = maxNo; maxSum += maxValLastRow; } return maxSum; } int main(){ int a[3][3] = {{4, 6, 1}, {2, 5, 7}, {9, 1, 2}}; cout<<"The maximum sum of elements from each row in the matrix is "<<RowMaxSum(a); return 0; }
आउटपुट
The maximum sum of elements from each row in the matrix is 22