banner
尊享面试 100 题

1198. 找出所有行中最小公共元素

Scroll down

1198. 找出所有行中最小公共元素

尊享面试 100 题是Leetcode会员专享题单

力扣题目链接
给你一个 m x n 的矩阵 mat,其中每一行的元素均符合 严格递增 。请返回 所有行中的 最小公共元素 。
如果矩阵中没有这样的公共元素,就请返回 -1。

示例 1:

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

示例 2:

1
2
输入:mat = [[1,2,3],[2,3,4],[2,3,5]]
输出: 2

提示:

  • m == mat.length
  • n == mat[i].length
  • 1 <= m, n <= 500
  • 1 <= mat[i][j] <= 104
  • mat[i] 已按严格递增顺序排列。

思路

暴力解法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
* @param {number[][]} mat
* @return {number}
*/
var smallestCommonElement = function(mat) {
let map = new Map()
let m = mat.length, n = mat[0].length
for(let i = 0;i<m;i++){
for(let j = 0; j< n;j++){
if(i === 0){
map.set(mat[i][j],1)
}else{
if(map.has(mat[i][j])){
map.set(mat[i][j],map.get(mat[i][j]) + 1)
}
}
}
}
for(let [key,value] of map.entries()){
if(value === m){
return key
}
}
return -1
};
其他文章
请输入关键词进行搜索