class Solution {
public:
int deleteGreatestValue(vector<vector<int>>& grid) {
}
};
2500. 删除每行中的最大值
给你一个 m x n
大小的矩阵 grid
,由若干正整数组成。
执行下述操作,直到 grid
变为空矩阵:
注意 每执行一次操作,矩阵中列的数据就会减 1 。
返回执行上述操作后的答案。
示例 1:
输入:grid = [[1,2,4],[3,3,1]] 输出:8 解释:上图展示在每一步中需要移除的值。 - 在第一步操作中,从第一行删除 4 ,从第二行删除 3(注意,有两个单元格中的值为 3 ,我们可以删除任一)。在答案上加 4 。 - 在第二步操作中,从第一行删除 2 ,从第二行删除 3 。在答案上加 3 。 - 在第三步操作中,从第一行删除 1 ,从第二行删除 1 。在答案上加 1 。 最终,答案 = 4 + 3 + 1 = 8 。
示例 2:
输入:grid = [[10]] 输出:10 解释:上图展示在每一步中需要移除的值。 - 在第一步操作中,从第一行删除 10 。在答案上加 10 。 最终,答案 = 10 。
提示:
m == grid.length
n == grid[i].length
1 <= m, n <= 50
1 <= grid[i][j] <= 100
原站题解
rust 解法, 执行用时: 4 ms, 内存消耗: 2.1 MB, 提交时间: 2023-10-11 10:51:10
impl Solution { pub fn delete_greatest_value(grid: Vec<Vec<i32>>) -> i32 { let mut grid = grid; for i in 0..grid.len() { grid[i].sort(); } let mut ans = 0; for j in 0..grid[0].len() { let mut t = 0; for i in 0..grid.len() { if grid[i][j] > t { t = grid[i][j]; } } ans += t; } ans } }
cpp 解法, 执行用时: 8 ms, 内存消耗: 9.5 MB, 提交时间: 2023-10-11 10:50:36
class Solution { public: int deleteGreatestValue(vector<vector<int>>& grid) { for (auto& row : grid) sort(row.begin(), row.end()); int ans = 0; for (int j = 0; j < grid[0].size(); ++j) { int t = 0; for (int i = 0; i < grid.size(); ++i) { t = max(t, grid[i][j]); } ans += t; } return ans; } };
java 解法, 执行用时: 3 ms, 内存消耗: 42 MB, 提交时间: 2023-10-11 10:50:19
class Solution { public int deleteGreatestValue(int[][] grid) { for (var row : grid) { Arrays.sort(row); } int ans = 0; for (int j = 0; j < grid[0].length; ++j) { int t = 0; for (int i = 0; i < grid.length; ++i) { t = Math.max(t, grid[i][j]); } ans += t; } return ans; } }
golang 解法, 执行用时: 8 ms, 内存消耗: 4.5 MB, 提交时间: 2022-12-14 10:51:20
func deleteGreatestValue(grid [][]int) (ans int) { for _, row := range grid { sort.Ints(row) } for j := range grid[0] { mx := 0 for _, row := range grid { mx = max(mx, row[j]) } ans += mx } return } func max(a, b int) int { if b > a { return b }; return a }
python3 解法, 执行用时: 40 ms, 内存消耗: 15.1 MB, 提交时间: 2022-12-14 10:50:57
class Solution: def deleteGreatestValue(self, grid: List[List[int]]) -> int: ''' 思路:每一行先排序,再将每一列的最大值相加 ''' for row in grid: row.sort() return sum(max(col) for col in zip(*grid))