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、程序编写要抽象出题目的规律
记录自己做的题目,有不足之处还望小伙伴不吝指教。