C ++中矩阵各行中元素的最大和
在这个问题上,我们得到了两个矩阵mat[][]。我们的任务是创建一个程序,以从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
解决方法
一个简单的解决方案是从矩阵的最后一行开始。在此处找到最大的数字,并将其添加到MaxSum,然后向上移动一行,找到小于其下一行最大元素的最大数字。这样做直到到达第一行。如果我们找不到小于最大数量的任何数字,那么我们将返回-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
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短