将矩阵的两个对角线之和之间的绝对差打印为单个整数。
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:
您的代码很接近,您只有第二个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 ...等