C++程序 在矩阵中查找每一行的最大元素
给定一个矩阵,任务是查找每一行的最大元素。
示例:
输入: [1, 2, 3]
[1, 4, 9]
[76, 34, 21]
输出:
3
9
76
输入: [1, 2, 3, 21]
[12, 1, 65, 9]
[1, 56, 34, 2]
输出:
21
65
56
方法: 方法非常简单。想法是对于每一行运行循环。检查行内的每个元素并找到最大的元素。最后输出该元素。
下面是实现:
// C++ program to find maximum
// element of each row in a matrix
#include <bits/stdc++.h>
using namespace std;
const int N = 4;
// 输出数组元素
void printArray(vector<int>& result, int no_of_rows)
{
for (int i = 0; i < no_of_rows; i++) {
cout << result[i] << " ";
}
}
// 获取最大元素的函数
void maxelement(int no_of_rows, vector<vector<int> >& arr)
{
int i = 0;
//在寻找每行最大元素的开头将max初始化为0
int max = 0;
vector<int> result(no_of_rows);
while (i < no_of_rows) {
for (int j = 0; j < N; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
}
}
result[i] = max;
max = 0;
i++;
}
printArray(result, no_of_rows);
}
//主函数
int main()
{
vector<vector<int> > arr = { { 3, 4, 1, 8 },
{ 1, 4, 9, 11 },
{ 76, 34, 21, 1 },
{ 2, 1, 4, 5 } };
// 调用函数
maxelement(4, arr);
return 0;
}
// 代码由Rajput-Ji贡献```
输出
8 11 76 5
时间复杂度 : O(M*N),其中M和N是给定矩阵的行和列的数量
辅助空间 : O(M)