Giả sử chúng ta có hai mảng A và B có kích thước lần lượt là N và M và chúng ta cũng có một ma trận nhị phân N X M trong đó 1 biểu thị rằng có một số nguyên dương trong ma trận ban đầu và 0 có nghĩa là vị trí cũng giữ 0 vào ma trận ban đầu. Chúng ta phải tạo ma trận ban đầu để A [i] biểu thị phần tử lớn nhất trong hàng thứ i và B [j] biểu thị phần tử lớn nhất trong cột thứ j.
Vì vậy, nếu đầu vào là ma trận A =[4, 2, 3], B =[3, 1, 0, 0, 4, 0, 5] thì đầu ra sẽ là ma trận
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
N:=kích thước của A
-
M:=kích thước của B
-
đối với tôi trong phạm vi từ 0 đến N, hãy thực hiện
-
đối với j trong phạm vi từ 0 đến M, thực hiện
-
nếu mat [i, j] giống 1 thì
-
hiển thị tối thiểu A [i] và B [j]
-
-
nếu không,
-
in một dòng mới
-
-
-
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
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);
Đầu vào
[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]]
Đầu ra
3 0 0 0 4 0 4 0 0 0 0 0 0 2 3 1 0 0 3 0 0