在 Python 中已知矩陣每行和每列的最大元素,求原矩陣


假設我們有兩個陣列 A 和 B,大小分別為 N 和 M,我們還有一個 N x M 的二元矩陣,其中 1 表示原矩陣中存在正整數,0 表示該位置在原矩陣中為 0。我們必須生成原矩陣,使得 A[i] 表示第 i 行的最大元素,B[j] 表示第 j 列的最大元素。

因此,如果輸入類似於 A = [4, 2, 3],B = [3, 1, 0, 0, 4, 0, 5] 矩陣,則輸出將是矩陣

為了解決這個問題,我們將遵循以下步驟:

  • N := A 的大小

  • M := B 的大小

  • 對於 i 的範圍為 0 到 N,執行:

    • 對於 j 的範圍為 0 到 M,執行:

      • 如果 mat[i, j] 等於 1,則

        • 顯示 A[i] 和 B[j] 的最小值

      • 否則,

        • 列印換行符

示例

讓我們看看下面的實現,以便更好地理解:

線上演示

def print_original_mat(A, B, mat) :
   N = len(A)
   M = len(B)
   for i in range(N) :
      for j in range(M) :
         if (mat[i][j] == 1) :
            print(min(A[i], B[j]), end = " ")
         else :
            print(0, end = " ")
      print()
A = [4, 2, 3]
B = [3, 1, 0, 0, 4, 0, 5]
mat = [
   [1, 0, 0, 0, 1, 0, 1],
   [0, 0, 1, 0, 0, 1, 1],
   [1, 1, 0, 1, 1, 0, 0]]
print_original_mat(A, B, mat);

輸入

[4, 2, 3],
[3, 1, 0, 0, 4, 0, 5],
[[1, 0, 0, 0, 1, 0, 1],
[0, 0, 1, 0, 0, 1, 1],
[1, 1, 0, 1, 1, 0, 0]]

輸出

3 0 0 0 4 0 4
0 0 0 0 0 0 2
3 1 0 0 3 0 0

更新於:2020年8月27日

178 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.