Python 中的大數


假設我們有一個矩陣,我們必須找到數值在行和列中都為最大的整數的總數。

所以,如果輸入如下

132
465
157

那麼輸出將為 2,因為 6 和 7 是有效的。

為解決此問題,我們將按照這些步驟操作 −

  • mat := 矩陣

  • r_maxes := 建立一個 mat 中每一行的最大元素列表

  • c_maxes := 建立一個 mat 中每一列的最大元素列表

  • a := 一個新列表

  • 對於行 r 從 0 到行數 - 1,執行

    • 對於列 c 從 0 到列數 - 1,執行

      • v := mat[r, c]

      • 如果 r_maxes[r] 是 v 並且 c_maxes[c] 是 v,那麼

        • 將 v 插入到 a 的末尾

  • 返回 a 的大小

讓我們檢視以下實現以獲得更好的理解 −

示例

 即時演示

class Solution:
   def solve(self, matrix):
      mat = matrix
      trans_mat = list(zip(*matrix))
      print(mat, trans_mat)
      r_maxes = [max(row) for row in mat]
      c_maxes = [max(t_row) for t_row in trans_mat]
      a = []
      for r in range(len(mat)):
         for c in range(len(trans_mat)):
            v = mat[r][c]
            if (r_maxes[r], c_maxes[c]) == (v, v):
               a.append(v)
      return len(a)
ob = Solution()
matrix = [
   [1, 3, 2],
   [4, 6, 5],
   [1, 5, 7]
]
print(ob.solve(matrix))

輸入

[[1, 3, 2], [4, 6, 5], [1, 5, 7]]

輸出

2

更新日期: 02-Sep-2020

311 次瀏覽

開啟你的 職業生涯

完成課程獲取認證

入門
廣告
© . All rights reserved.