删除每行中的最大值【LC2500】
给你一个
m x n大小的矩阵grid,由若干正整数组成。执行下述操作,直到
grid变为空矩阵:
- 从每一行删除值最大的元素。如果存在多个这样的值,删除其中任何一个。
 - 将删除元素中的最大值与答案相加。
 注意 每执行一次操作,矩阵中列的数据就会减 1 。
返回执行上述操作后的答案。
- 
思路
将数组的每行进行排序,每次删除得分为该列的最大值,累加返回结果
 - 
实现
javaclass Solution { public int deleteGreatestValue(int[][] grid) { int n = grid.length, m = grid[0].length, res = 0; for (int i = 0; i < n; i++){ Arrays.sort(grid[i]); } for (int i = 0; i < m; i++){ int mx = 0; for (int j = 0; j < n; j++){ mx = Math.max(mx, grid[j][i]); } res += mx; } return res; } }- 复杂度
- 时间复杂度: O ( n ∗ m ∗ log  m ) \mathcal{O}(n*m*\log m) O(n∗m∗logm)
 - 空间复杂度: O ( log  m ) \mathcal{O}(\log m) O(logm)
 
 
 - 复杂度