LeetCode简单题之矩阵中的幸运数
生活随笔
收集整理的這篇文章主要介紹了
LeetCode简单题之矩阵中的幸运数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
給你一個 m * n 的矩陣,矩陣中的數字 各不相同 。請你按 任意 順序返回矩陣中的所有幸運數。
幸運數是指矩陣中滿足同時下列兩個條件的元素:
在同一行的所有元素中最小
在同一列的所有元素中最大
示例 1:
輸入:matrix = [[3,7,8],[9,11,13],[15,16,17]]
輸出:[15]
解釋:15 是唯一的幸運數,因為它是其所在行中的最小值,也是所在列中的最大值。
示例 2:
輸入:matrix = [[1,10,4,2],[9,3,8,7],[15,16,17,12]]
輸出:[12]
解釋:12 是唯一的幸運數,因為它是其所在行中的最小值,也是所在列中的最大值。
示例 3:
輸入:matrix = [[7,8],[1,2]]
輸出:[7]
提示:
m == mat.length
n == mat[i].length
1 <= n, m <= 50
1 <= matrix[i][j] <= 10^5
矩陣中的所有元素都是不同的
來源:力扣(LeetCode)
解題思路
??針對這一題可以先找出第i行的最小值和它在當前行中的列下標,然后再在同列中查找是否存在其他的值大于當前值,如果不存在則符合條件,反之則不符合。
class Solution:def luckyNumbers (self, matrix: List[List[int]]) -> List[int]:temp=[] #存放符合條件的值for i in range(len(matrix)):flag=1 #當前值是否符合條件的標記m=min(matrix[i])index=matrix[i].index(m)k=ifor j in range(len(matrix)-1):k=(k+1)%len(matrix) #在同列中尋找if m<matrix[k][index]: #如果在同列中找到比當前值更大的值flag=0 #不符合條件breakif flag:temp.append(m)return temp
總結
以上是生活随笔為你收集整理的LeetCode简单题之矩阵中的幸运数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之删除某些元素后的
- 下一篇: LeetCode简单题之按照频率将数组升