我们需要找到两个对角线之和之间的最高级差异。请您告诉我我要去哪里了

问题描述 投票:-2回答:1

将矩阵的两个对角线之和之间的绝对差打印为单个整数。

diagonalDifference(arr):sum1 = 0sum2 = 0

for i in range(len(arr)):
    for j in range(len(arr)):
        if (i==j):
            sum1=sum1+arr[i][j]

        if (((i+j)-1)==(len(arr))):
            sum2=sum2+arr[i][j]
return abs(sum1-sum2)
P.s:
python arrays matrix diagonal
1个回答
0
投票

您的代码很接近,您只有第二个if语句弄乱了,它实际上应该像这样:

for i in range(len(arr)):
    for j in range(len(arr)):
        if i==j:
            sum1 += arr[i][j]
        if i+j == len(arr)-1:
            sum2 += arr[i][j]

示例:

arr = [[1,2,3],[4,5,6],[7,8,9]]
sum1 #15
sum2 #15
abs(sum1-sum2) #0

数组的长度为3 .....对于第二个对角线,第一个值在i = 2,j = 0,所以i + j = 2,即3-1第二个值在i = 1,j = 1,所以i + j = 2,即3-1 ...等

© www.soinside.com 2019 - 2024. All rights reserved.