2679. 矩阵中的和
题意
给你一个下标从 0 开始的二维整数数组 nums 。一开始你的分数为 0 。你需要执行以下操作直到矩阵变为空:
矩阵中每一行选取最大的一个数,并删除它。如果一行中有多个最大的数,选择任意一个并删除。
在步骤 1 删除的所有数字中找到最大的一个数字,将它添加到你的 分数 中。
请你返回最后的 分数 。
样例输入
nums = [[7,2,1],[6,4,2],[6,5,3],[3,2,1]]
样例输出
15
提示
1 <= nums.length <= 300
1 <= nums[i].length <= 500
0 <= nums[i][j] <= 103
c++代码
class Solution {
public:
int matrixSum(vector<vector<int>>& nums) {
int n = nums.size();
int m = nums[0].size();
for(int i = 0; i < n; i++ ) sort(nums[i].begin(), nums[i].end());
int ans = 0;
for(int j = 0; j < m; j++ ){
int mx = nums[0][j];
for(int i = 0; i < n; i++ ){
if(mx < nums[i][j]) mx = nums[i][j];
}
ans += mx;
}
return ans;
}
};
python代码
class Solution:
def matrixSum(self, nums: List[List[int]]) -> int:
n = len(nums)
m = len(nums[0])
for i in range(n):
nums[i].sort()
ans = 0
for j in range(m):
mx = nums[0][j]
for i in range(n):
mx = mx if mx > nums[i][j] else nums[i][j]
ans += mx
return ans
备注
学会使用c++跟python自带的排序函数