LeetCode 1380. 矩阵中的幸运数缩略图

给你一个 m * n 的矩阵,矩阵中的数字 各不相同 。请你按 任意 顺序返回矩阵中的所有幸运数。

幸运数 是指矩阵中满足同时下列两个条件的元素:

  • 在同一行的所有元素中最小
  • 在同一列的所有元素中最大

1380. 矩阵中的幸运数 – 力扣(Leetcode)

LeetCode 1380. 矩阵中的幸运数插图
OpenCV步步精深-可心科创工作室

思路:

求行最小,和列最大,求交集。

LeetCode 1380. 矩阵中的幸运数插图1
OpenCV步步精深-可心科创工作室

python3实现:

class Solution:
    def luckyNumbers (self, matrix: List[List[int]]) -> List[int]:
        hang = []
        for each in matrix:
            min_each = min(each)
            hang.append(min_each)
        lie  = []
        for every in list(zip(*matrix)):
            max_every = max(every)
            lie.append(max_every)
        print("hang:", hang)
        print("lie :", lie)
        return list(set(hang) & set(lie))

讲解:

1.用 zip(*matrix)可以取出每一列的元素并组成新的列表,如下图所示。

LeetCode 1380. 矩阵中的幸运数插图2
OpenCV步步精深-可心科创工作室

2.用 set(hang) & set(lie) 可以求出交集,如下图所示。

LeetCode 1380. 矩阵中的幸运数插图3
OpenCV步步精深-可心科创工作室

更多干货见 OpenCV步步精深

作者 admin

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注