Given an m x n
matrix mat
where every row is sorted in strictly increasing order, return the smallest common element in all rows.
If there is no common element, return -1
.
Example 1:
Input: mat = [[1,2,3,4,5],[2,4,5,8,10],[3,5,7,9,11],[1,3,5,7,9]] Output: 5
Example 2:
Input: mat = [[1,2,3],[2,3,4],[2,3,5]] Output: 2
Constraints:
m == mat.length
n == mat[i].length
1 <= m, n <= 500
1 <= mat[i][j] <= 104
mat[i]
is sorted in strictly increasing order.
class Solution:
def smallestCommonElement(self, mat: List[List[int]]) -> int:
counter = Counter()
for row in mat:
for num in row:
counter[num] += 1
if counter[num] == len(mat):
return num
return -1
class Solution {
public int smallestCommonElement(int[][] mat) {
int[] counter = new int[10001];
for (int[] row : mat) {
for (int num : row) {
++counter[num];
if (counter[num] == mat.length) {
return num;
}
}
}
return -1;
}
}