2500、删除每行中最大值在IDEA中调试Java

leetcode:2500、删除每行中最大值在IDEA中调试,使用Java实现

题目描述:

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

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

从每一行删除值最大的元素。如果存在多个这样的值,删除其中任何一个。
将删除元素中的最大值与答案相加。
注意 每执行一次操作,矩阵中列的数据就会减 1 。

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

public class DeleteGreatestValue {
    public static int deleteGreatestValuee(int[][] grid) {
        /**
         * 先给每行排序,再取每一列的最大值,每列最大值相加即为答案
         */
        int n=grid.length;
        int m=grid[0].length;
        for(int i=0;i<n;i++){
            Arrays.sort(grid[i]);
        }
        int sum=0;
        for (int j=0;j<m;j++){
            int max=0;
            for (int i=0;i<n;i++){
                max=Math.max(max,grid[i][j]);
            }
            sum+=max;
        }
        return sum;
    }
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int[][] grid={{1,2,4},{3,3,1}};
        int[][] grid1=new int[3][4];//Java中声明数组
        System.out.println("请输入一个三行四列的二维数组:");
        for (int i=0;i<3;i++){
            for(int j=0;j<4;j++){
                String s = scanner.next();
                grid1[i][j]=Integer.parseInt(s);
            }
        }
        int i = DeleteGreatestValue.deleteGreatestValuee(grid1);
        System.out.println(i);
    }
}

知识点:

1、可debug调试程序,梳理执行过程
2、Java中声明数组的方式
3、Java中Scanner替代了C语言中的scanf的控制台输入
4、字符串转换为int类型的方法
5、程序编写要抽象出题目的规律

记录自己做的题目,有不足之处还望小伙伴不吝指教。

你可能感兴趣的:(java,intellij-idea,leetcode)