2023/07/04_leetcode每日一题_2679. 矩阵中的和
题目
给你一个下标从 0 开始的二维整数数组 nums 。一开始你的分数为 0 。你需要执行以下操作直到矩阵变为空:
矩阵中每一行选取最大的一个数,并删除它。如果一行中有多个最大的数,选择任意一个并删除。 在步骤 1 删除的所有数字中找到最大的一个数字,将它添加到你的 分数 中。
请你返回最后的 分数 。
思路
每一行按照从大到小的顺序排列好 遍历取每一列的最大值加和
Java代码
class Solution { public int matrixSum(int[][] nums) { int row=nums.length; int column=nums[0].length; int res=0; for(int i=0;i<row;i++){ //第i行,遍历每一个元素并排序 for(int j=0;j<column;j++){ for(int k=j;k<column;k++){ if(nums[i][j]<nums[i][k]){ int temp=nums[i][k]; nums[i][k]=nums[i][j]; nums[i][j]=temp; } } } } for(int j=0;j<column;j++){ int maxColumn=0; for(int i=0;i<row;i++){ if(nums[i][j]>maxColumn) maxColumn=nums[i][j]; } res+=maxColumn; } return res; } }
查找的问题
java冒泡排序需要两层循环,第一层循环i表示排序的轮数,第二层循环j表示比较的次数。