美文网首页
矩阵中的幸运数

矩阵中的幸运数

作者: WAI_f | 来源:发表于2020-06-16 00:07 被阅读0次

题目:

给你一个 m * n 的矩阵,矩阵中的数字 各不相同 。请你按 任意 顺序返回矩阵中的所有幸运数。
幸运数是指矩阵中满足同时下列两个条件的元素:

  • 在同一行的所有元素中最小
  • 在同一列的所有元素中最大

示例:

输入:matrix = [[3,7,8],[9,11,13],[15,16,17]]
输出:[15]
解释:15 是唯一的幸运数,因为它是其所在行中的最小值,也是所在列中的最大值。

解题方法:

最近刷题总把题目想的太复杂了,这道题也是这样,题解的思路大致都是:

  1. 计算每一行的最小值;
  2. 判断改行最小值是否在所在列是最大值;

代码和结果:

class Solution {
public:
    vector<int> luckyNumbers (vector<vector<int>>& matrix) {
        vector<int> lk_num;
        for(int i=0;i<matrix.size();i++)
        {
            int cols=0;
            int minv=matrix[i][0];
            for(int j=1;j<matrix[i].size();j++)
            {
                if(matrix[i][j]<minv)
                {
                    minv=matrix[i][j];
                    cols=j;
                }
            }
            bool flag=true;
            for(int k=0;k<matrix.size();k++)
            {
                if(matrix[i][cols]<matrix[k][cols])
                {
                    flag=false;
                    break;
                }
            }
            if(flag)
                lk_num.push_back(matrix[i][cols]);
        }
        return lk_num;
    }
};
运行结果:

原题链接:https://leetcode-cn.com/problems/lucky-numbers-in-a-matrix/

相关文章

网友评论

      本文标题:矩阵中的幸运数

      本文链接:https://www.haomeiwen.com/subject/anikxktx.html