class Solution {
public:
vector<vector<int>> modifiedMatrix(vector<vector<int>>& matrix) {
}
};
3033. 修改矩阵
给你一个下标从 0 开始、大小为 m x n
的整数矩阵 matrix
,新建一个下标从 0 开始、名为 answer
的矩阵。使 answer
与 matrix
相等,接着将其中每个值为 -1
的元素替换为所在列的 最大 元素。
返回矩阵 answer
。
示例 1:
输入:matrix = [[1,2,-1],[4,-1,6],[7,8,9]] 输出:[[1,2,9],[4,8,6],[7,8,9]] 解释:上图显示了发生替换的元素(蓝色区域)。 - 将单元格 [1][1] 中的值替换为列 1 中的最大值 8 。 - 将单元格 [0][2] 中的值替换为列 2 中的最大值 9 。
示例 2:
输入:matrix = [[3,-1],[5,2]] 输出:[[3,2],[5,2]] 解释:上图显示了发生替换的元素(蓝色区域)。
提示:
m == matrix.length
n == matrix[i].length
2 <= m, n <= 50
-1 <= matrix[i][j] <= 100
原站题解
rust 解法, 执行用时: 4 ms, 内存消耗: 2.1 MB, 提交时间: 2024-07-05 09:07:26
impl Solution { pub fn modified_matrix(mut matrix: Vec<Vec<i32>>) -> Vec<Vec<i32>> { for j in 0..matrix[0].len() { let mx = matrix.iter().map(|row| row[j]).max().unwrap(); for row in matrix.iter_mut() { if row[j] == -1 { row[j] = mx; } } } matrix } }
javascript 解法, 执行用时: 88 ms, 内存消耗: 52.6 MB, 提交时间: 2024-07-05 09:07:12
/** * @param {number[][]} matrix * @return {number[][]} */ var modifiedMatrix = function(matrix) { for (let j = 0; j < matrix[0].length; j++) { let mx = 0; for (const row of matrix) { mx = Math.max(mx, row[j]); } for (const row of matrix) { if (row[j] === -1) { row[j] = mx; } } } return matrix; };
java 解法, 执行用时: 1 ms, 内存消耗: 44.7 MB, 提交时间: 2024-07-05 09:06:59
class Solution { public int[][] modifiedMatrix(int[][] matrix) { for (int j = 0; j < matrix[0].length; j++) { int mx = 0; for (int[] row : matrix) { mx = Math.max(mx, row[j]); } for (int[] row : matrix) { if (row[j] == -1) { row[j] = mx; } } } return matrix; } }
cpp 解法, 执行用时: 7 ms, 内存消耗: 21.8 MB, 提交时间: 2024-07-05 09:06:48
class Solution { public: vector<vector<int>> modifiedMatrix(vector<vector<int>>& matrix) { for (int j = 0; j < matrix[0].size(); j++) { int mx = 0; for (auto& row: matrix) { mx = max(mx, row[j]); } for (auto& row: matrix) { if (row[j] == -1) { row[j] = mx; } } } return matrix; } };
golang 解法, 执行用时: 4 ms, 内存消耗: 3.8 MB, 提交时间: 2024-02-19 09:37:33
func modifiedMatrix(matrix [][]int) [][]int { for j := range matrix[0] { mx := 0 for _, row := range matrix { mx = max(mx, row[j]) } for _, row := range matrix { if row[j] == -1 { row[j] = mx } } } return matrix }
python3 解法, 执行用时: 47 ms, 内存消耗: 16.6 MB, 提交时间: 2024-02-19 09:36:31
class Solution: def modifiedMatrix(self, matrix: List[List[int]]) -> List[List[int]]: for j in range(len(matrix[0])): mx = max(row[j] for row in matrix) for row in matrix: if row[j] == -1: row[j] = mx return matrix
python3 解法, 执行用时: 45 ms, 内存消耗: 16.6 MB, 提交时间: 2024-02-19 09:35:21
class Solution: def modifiedMatrix(self, matrix: List[List[int]]) -> List[List[int]]: # 遍历两次,一次统计每列最大值,一次替换 m, n = len(matrix), len(matrix[0]) _max_col = [0] * n for i in range(n): for j in range(m): _max_col[i] = max(matrix[j][i], _max_col[i]) for i in range(m): for j in range(n): if matrix[i][j] == -1: matrix[i][j] = _max_col[j] return matrix