力扣刷题--3033. 修改矩阵【简单】
题目描述
给你一个下标从 0 开始、大小为 m x n 的整数矩阵 matrix ,新建一个下标从 0 开始、名为 answer 的矩阵。使 answer 与 matrix 相等,接着将其中每个值为 -1 的元素替换为所在列的 最大 元素。
返回矩阵 answer 。
算法分析
利用max_element函数,求出每一列的最大值
完整代码
class Solution {
public:
vector<vector<int>> modifiedMatrix(vector<vector<int>>& matrix) {
int m=matrix.size();
int n=matrix[0].size();
//用一个数组保存每一列的最大值
vector<int>a;
for(int j=0;j<n;j++)
{
vector<int>tmp;
for(int i=0;i<m;i++)
{
tmp.push_back(matrix[i][j]);
}
auto max=max_element(tmp.begin(),tmp.end());
a.push_back(*max);
tmp.clear();//清空数据
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(matrix[i][j]==-1)
{
matrix[i][j]=a[j];
}
}
}
return matrix;
}
};
本篇完!