CodilityのMaxSliceSumという問題
上記の問題を日本語で説明している記事

を解き、コンパイルして評価したのですが、テストケースA=[-10]の時に0ではなく-10を返すように修正する必要がわかったため、変数の初期値に問題で指定されている想定されうる最も小さい値を入れるコードにしました。

しかし、変更後のコードでは他のバグが生じてしまい、修正方法がわかりません。

変更前のコードでは、テストケースA=[3,2,-6,4,0]の時に5が返されて要求を満たしています。

変更前

def solution(A):
    maxsum = 0
    start = 0
    end = 0
    for i in range(len(A)):
        tmp = A[i]
        for j in range(i+1, len(A)):
            if tmp + A[j] > maxsum:
                tmp = tmp + A[j]
            else:
                break

        if tmp > maxsum:
            maxsum = tmp

    return (maxsum)

しかしながら、変更後のコードではA=[3,2,-6,4,0]の時に4が返されてしまうようになりました。

変更後

def solution(A):
    maxsum = −2147483648 #変数maxsumの初期値を変更
    start = 0
    end = 0
    for i in range(len(A)):
        tmp = A[i]
        for j in range(i+1, len(A)):
            if tmp + A[j] > maxsum:
                tmp = tmp + A[j]
            else:
                break

        if tmp > maxsum:
            maxsum = tmp

    return (maxsum)