給你一個矩陣 mat
,其中每一行的元素都已經按 遞增 順序排好了。請你幫忙找出在全部這些行中 最小的公共元素。spa
若是矩陣中沒有這樣的公共元素,就請返回 -1
。code
示例: 輸入:mat = [[1,2,3,4,5],[2,4,5,8,10],[3,5,7,9,11],[1,3,5,7,9]] 輸出:5
解法:blog
暴力解法 就是使用哈希記錄每行 而後比較io
代碼class
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; } };