假设我们有一个方阵;我们必须找到矩阵对角线的总和。所以只包括主对角线上所有元素和次对角线上所有元素的总和,而忽略交叉元素。
所以,如果输入是这样的
10 | 5 | 9 | 6 |
8 | 15 | 3 | 2 |
3 | 8 | 12 | 3 |
2 | 11 | 7 | 3 |
那么输出将是主对角线元素为 [10,15,12,3] 总和为 40,次对角线 [6,3,8,2] 总和为 19,所以总和为 59。
让我们看看以下实现以获得更好的理解 -
def solve(matrix): m = len(matrix) if m == 1: return matrix[0][0] count = 0 for i in range(m): count += matrix[i][i] count += matrix[i][-1 - i] if m % 2 == 1: count -= matrix[m // 2][m // 2] return count matrix = [[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3],] print(solve(matrix))
[[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3]]输出结果
59