繁体   English   中英

在Python中添加负数时,为什么我的代码给我错误的结果?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM