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

假设我们有两个分别为N和M的数组A和B,还有一个NXM二进制矩阵,其中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,执行

    • 如果mat [i,j]与1相同,则

    • 除此以外,

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

    • 打印新行

    • 对于0到M范围内的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
    猜你喜欢