leetcode 双周赛9 找出所有行中最小公共元素

Posted itdef

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 双周赛9 找出所有行中最小公共元素相关的知识,希望对你有一定的参考价值。

给你一个矩阵 mat,其中每一行的元素都已经按 递增 顺序排好了。请你帮忙找出在所有这些行中 最小的公共元素。

如果矩阵中没有这样的公共元素,就请返回 -1

示例:

输入:mat = [[1,2,3,4,5],[2,4,5,8,10],[3,5,7,9,11],[1,3,5,7,9]]
输出:5

解法:

暴力解法  就是使用哈希记录每行 然后比较

代码

class Solution 
public:
unordered_map<int, int> umap[510];

int smallestCommonElement(vector<vector<int>>& mat) 
    if (mat.empty() || mat[0].empty()) return -1;
    for (int i = 0; i < mat.size(); i++)
    
        for (int j = 0; j < mat[0].size(); j++) 
            umap[i][mat[i][j]]++;
        
    

    for (int j = 0; j < mat[0].size(); j++) 
        int find = 1;
        int findNum = mat[0][j];
        for (int i = 1; i < mat.size(); i++) 
            if (umap[i][findNum] == 0) 
                find = 0;
                break;
            
        
        if (find == 1)
        
            return findNum;
        
    

    return -1;

    
;

 

以上是关于leetcode 双周赛9 找出所有行中最小公共元素的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 双周赛 101,DP/中心位贪心/裴蜀定理/Dijkstra/最小环

leetcode 双周赛9 进击的骑士

LeetCode双周赛10

LeetCode 第 59 场力扣夜喵双周赛(最短路径数+迪杰斯特拉动态规划+最长公共前缀问题) / 第255场周赛(二进制转换,分组背包,子集还原数组(脑筋急转弯))

LeetCode 第63场双周赛复盘

[leetcode 双周赛 11] 1228 等差数列中缺失的数字