Почему мой код дает мне неправильный результат при добавлении отрицательных чисел в Python? - PullRequest
0 голосов
/ 02 октября 2018
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

цель моей программы - найти некоторые элементы из массива и сложить их вместе.если одна сумма больше, чем другая сумма, вернуть максимальную сумму.Код работает для положительных чисел.Но не работает для отрицательных чисел.Кто-нибудь может мне помочь объяснить, почему?

1 Ответ

0 голосов
/ 02 октября 2018

Не работает, потому что сумма отрицательных чисел меньше 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...