在 Python 中,当给定行和列中的最大元素时,查找原始矩阵

pythonserver side programmingprogramming更新于 2025/10/15 22:04:17

假设我们有两个数组 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 的大小

  • 对于 0 到 N 范围内的 i,执行

    • 对于 0 到 M 范围内的 j,执行

      • 如果 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

相关文章


有用资源