在 Python 中查詢矩陣中所有元素的總和,除了給定單元格所在的行和/或列中的元素


假設我們有一個二維矩陣和一組單元格索引。單元格索引表示為 (i, j),其中 i 是行,j 是列,現在,對於每個給定的單元格索引 (i, j),我們必須找到所有矩陣元素的總和,不包括第 i 行和/或第 j 列中存在的元素。

所以,如果輸入如下

223
457
643

單元格索引 = [(0, 0), (1, 1), (0, 1)],則輸出將為 [19, 14, 20]

要解決此問題,我們將遵循以下步驟:

  • n := ind_arr 的大小

  • ans := 一個新的列表

  • 對於 i 的範圍從 0 到 n,執行以下操作

    • Sum := 0

    • row := ind_arr[i, 0]

    • col := ind_arr[i, 1]

    • 對於 j 的範圍從 0 到 mat 的行數,執行以下操作

      • 對於 k 的範圍從 0 到 map 的列數,執行以下操作

        • 如果 j 與 row 不相同,並且 k 與 col 不相同,則

          • Sum := Sum + mat[j, k]

    • 將 Sum 插入到 ans 的末尾

  • 返回 ans

示例

讓我們看看以下實現以更好地理解:

即時演示

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))

輸入

mat = [[2, 2, 3], [4, 5, 7], [6, 4, 3]] ind_arr = [(0, 0),(1, 1),(0, 1)

輸出

[19, 14, 20]

更新於: 2020-08-19

819 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告