Giả sử chúng ta có một ma trận 2D và một tập hợp các chỉ mục ô. Các chỉ số ô được biểu diễn dưới dạng (i, j) trong đó i là hàng và j là cột, bây giờ, với mọi chỉ số ô nhất định (i, j), chúng ta phải tìm tổng của tất cả các phần tử ma trận ngoại trừ các phần tử có trong hàng thứ i và / hoặc cột thứ j.
Vì vậy, nếu đầu vào giống như
2 | 2 | 3 |
4 | 5 | 7 |
6 | 4 | 3 |
cell indices =[(0, 0), (1, 1), (0, 1)], thì đầu ra sẽ là [19, 14, 20]
Để 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 ind_arr
-
ans:=một danh sách mới
-
đối với tôi trong phạm vi từ 0 đến n, hãy thực hiện
-
Tổng:=0
-
row:=ind_arr [i, 0]
-
col:=ind_arr [i, 1]
-
đối với j trong phạm vi 0 đến số hàng của thảm, thực hiện
-
đối với k trong phạm vi 0 đến số cột của bản đồ, thực hiện
-
nếu j không giống hàng và k không giống col, thì
-
Tính tổng:=Sum + mat [j, k]
-
-
-
-
chèn Sum vào cuối ans
-
-
trả lại ans
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def show_sums(mat, ind_arr): n = len(ind_arr) ans = [] for i in range(0, n): Sum = 0 row = ind_arr[i][0] col = ind_arr[i][1] for j in range(0, len(mat)): for k in range(0, len(mat[0])): if j != row and k != col: Sum += mat[j][k] ans.append(Sum) return ans mat = [[2, 2, 3], [4, 5, 7], [6, 4, 3]] ind_arr = [(0, 0),(1, 1),(0, 1)] print(show_sums(mat, ind_arr))
Đầu vào
mat = [[2, 2, 3], [4, 5, 7], [6, 4, 3]] ind_arr = [(0, 0),(1, 1),(0, 1)
Đầu ra
[19, 14, 20]