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;
}
    
};

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM