[英]Why does my code give me the wrong result when adding negative numbers in Python?
def hourglassSum(arr):
totSum = 0
sum = 0
for j in range(4):
for i in range(4):
sum = arr[j][i] + arr[j][i+1] +arr[j][i+2]
print(sum)
if (sum > totSum):
totSum = sum
return totSum
我程序的目的是从数组中查找一些元素并将它们添加在一起。 如果一个和大于另一个和,则返回最大和。 该代码适用于正数。 但是不适用于负数。 有人可以帮我解释原因吗?
它不起作用,因为负数之和小于0
。 同时, totSum
开始为0
,这就是为什么sum > totSum
最终永远不会为True
。
这是修复它的一种方法:
import math
def hourglassSum(arr):
totSum = -math.inf
for j in range(4):
for i in range(4):
sum = arr[j][i] + arr[j][i+1] +arr[j][i+2]
if (sum > totSum):
totSum = sum
return totSum
当然,这种事情总会有一线希望:
def hourglassSum(arr):
return max(arr, key=sum)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.