LeetCode : 5071. 找出所有行中最小公共元素

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

 

给你一个矩阵 mat,其中每一行的元素都已经按 递增 顺序排好了。请你帮忙找出在所有这些行中 最小的公共元素

如果矩阵中没有这样的公共元素,就请返回 -1

 

示例:

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

 

提示:

  • 1 <= mat.length, mat[i].length <= 500
  • 1 <= mat[i][j] <= 10^4
  • mat[i] 已按递增顺序排列。

题解:

直接遍历放进计数字典,对key进行排序遍历,如果数量等于行数就输出,否则输出-1

class Solution:
    def smallestCommonElement(self, mat: List[List[int]]) -> int:
        d = collections.Counter(itertools.chain(*mat))
        n = len(mat)
        for i in sorted(d):
            if d[i] == n:
                return i
        return -1

 

你可能感兴趣的:(LeetCode : 5071. 找出所有行中最小公共元素)