用 C++ 尋找矩陣中和最大的行
在這個問題中,給定一個 N*N 大小的矩陣 mat[][]。我們的任務是找到矩陣中和最大的行。
我們舉一個例子來理解這個問題,
輸入
mat[][] = { 8, 4, 1, 9 3, 5, 7, 9 2, 4, 6, 8 1, 2, 3, 4 }
輸出
Row 2, sum 24
說明
Row 1: sum = 8+4+1+9 = 22 Row 2: sum = 3+5+7+9 = 24 Row 3: sum = 2+4+6+8 = 20 Row 4: sum = 1+2+3+4 = 10
解決方案方法
解決這個問題的一個簡單的方法是找到每行的元素之和並記錄最大和。然後,在遍歷完所有行之後,返回和最大的行。
一個程式來說明我們的解決方案的工作原理,
示例
#include <iostream> using namespace std; #define R 4 #define C 4 void findMax1Row(int mat[R][C]) { int maxSumRow = 0, maxSum = -1; int i, index; for (i = 0; i < R; i++) { int sum = 0; for(int j = 0; j < C; j++){ sum += mat[i][j]; } if(sum > maxSum){ maxSum = sum; maxSumRow = i; } } cout<<"Row : "<<(maxSumRow+1)<<" has the maximum sum which is "<<maxSum; } int main() { int mat[R][C] = { {8, 4, 1, 9}, {3, 5, 7, 9}, {2, 4, 6, 8}, {1, 2, 3, 4} }; findMax1Row(mat); return 0; }
輸出
Row : 2 has the maximum sum which is 24
廣告