zoukankan      html  css  js  c++  java
  • leetcode1380

     1 import sys
     2 class Solution:
     3     def luckyNumbers (self, matrix: List[List[int]]) -> List[int]:
     4         m = len(matrix)
     5         n = len(matrix[0])
     6         luckyset = set()
     7         result = []
     8         for i in range(m):
     9             min_row = sys.maxsize
    10             for j in range(n):
    11                 if matrix[i][j] < min_row:
    12                     min_row = matrix[i][j]
    13             luckyset.add(min_row)
    14         for j in range(n):
    15             max_col = 0
    16             for i in range(m):
    17                 if matrix[i][j] > max_col:
    18                     max_col = matrix[i][j]
    19             if max_col in luckyset:
    20                 result.append(max_col)
    21         return result

    算法思路:二维数组遍历。

    第一次遍历:先行后列,将每一行的最小值都存到一个set中。

    第二次遍历:先列后行,计算每一列的最大值,并判断是否在之前的集合中,相当于求交集。

  • 相关阅读:
    学习进度表
    第八次日志
    第七次日志
    第六次日志
    第五次日志
    第四次日志
    第一次日志
    第三次日志
    第二次日志
    学习进度表
  • 原文地址:https://www.cnblogs.com/asenyang/p/12496987.html
Copyright © 2011-2022 走看看