1380. Lucky Numbers in a Matrix

Given a m * n matrix of distinct numbers, return all lucky numbers in the matrix in any order.

A lucky number is an element of the matrix such that it is the minimum element in its row and maximum in its column.

维护两个数组。分别统计每行的最小值和每列的最大值,然后两层for去寻找相等值

class Solution(object):
    def luckyNumbers (self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: List[int]
        """
        min_row = [0] * len(matrix)
        max_col = [0] * len(matrix[0])
        for i in range(0, len(matrix), 1):
            min_row[i] = matrix[i][0]
            for j in range(1, len(matrix[i]), 1):
                min_row[i] = min(matrix[i][j], min_row[i])
            min_row[i] = min(matrix[i])
        for i in range(0, len(matrix[i]), 1):
            max_col[i] = matrix[0][i]
            for j in range(1, len(matrix), 1):
                max_col[i] = max(matrix[j][i], max_col[i])
        ans = []
        for i in range(0, len(matrix), 1):
            for j in range(0, len(matrix[i]), 1):
                if min_row[i] == max_col[j]:
                    ans.append(min_row[i])
        return ans
            
        

 

posted @ 2020-06-29 14:07  whatyouthink  阅读(80)  评论(0编辑  收藏  举报