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; } };
作 者: itdef
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
浙公网安备 33010602011771号