LeetCode每日一题 2679. 矩阵中的和

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自带的排序函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值