【每日一题Day278】LC2500删除每行中的最大值 | 排序+模拟

删除每行中的最大值【LC2500】

给你一个 m x n 大小的矩阵 grid ,由若干正整数组成。

执行下述操作,直到 grid 变为空矩阵:

  • 从每一行删除值最大的元素。如果存在多个这样的值,删除其中任何一个。
  • 将删除元素中的最大值与答案相加。

注意 每执行一次操作,矩阵中列的数据就会减 1 。

返回执行上述操作后的答案。

  • 思路

    将数组的每行进行排序,每次删除得分为该列的最大值,累加返回结果

  • 实现

    java 复制代码
    class 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)
相关推荐
神明不懂浪漫9 分钟前
【第五章】Java中的继承与多态
java·开发语言
AI多Agent协作实战派2 小时前
AI多Agent协作系统实战(十七):凌晨4点,我的AI系统在“假装工作“——3个bug同时爆炸的5小时
java·前端·bug
gaolei_eit2 小时前
Java+Ai+vue
java·spring·maven
qq_2518364572 小时前
基于java Web 动漫视频网站毕业论文
java·开发语言·前端
LayZhangStrive2 小时前
JUC相关的函数、注解、变量杂记
java·面试·多线程·juc
未秃头的程序猿3 小时前
给公司做了个AI客服Agent,用的Spring AI 1.0,3天上线领导拍板了
java·后端·ai编程
来一碗刘肉面3 小时前
栈的应用(表达式求值)
数据结构·算法
曹牧3 小时前
Eclipse 批量文本替换
java·ide·eclipse
程序员清风3 小时前
OpenAI官方发布最新提示词技巧!
java·后端·面试
一只枫林3 小时前
MySQL内、外连接知识点汇总
java·前端·数据库