# [LeetCode]#1380. Lucky Numbers in a Matrix

**Environment: Python 3.7**

**Key technique: zip**

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.

**Example 1:**

**Input:** matrix = [[3,7,8],[9,11,13],[15,16,17]]

**Output:** [15]

**Explanation:** 15 is the only lucky number since it is the minimum in its row and the maximum in its column

**Analysis:**

- Search minimum element in its row
- Search maximum in its column.
- Use logic “and” to find lucky number.

**Solution:**

`class Solution:`

def luckyNumbers (self, matrix):

min_n = {min(rows) for rows in matrix}

max_n = {max(columns) for columns in zip(*matrix)}

return list(min_n & max_n)

**Submissions:**

**Reference:**

http://puremonkey2010.blogspot.com/2015/10/python-python-zip.html