1
void kadane(int A[], int N, int& bestStart, int& bestEnd, int& bestSum)
{

    int max_ending_here = 0;
    int max_so_far = 0;
    bestStart = 0;


    for (int i = 0; i < N; i++)
    {

        max_ending_here += A[i];

        if (max_ending_here < 0)
        {
            max_ending_here = 0;
        }
        if (max_ending_here > max_so_far)
        {
            max_so_far = max_ending_here;
            bestEnd = i;
        }

    }
}

最良の開始インデックスを更新したい 配列 A={-1,-2,5,0,1} がある場合 最良の開始はインデックス 2 であり、最良の終了インデックスは 4 である必要があります 最良の終了を取得していますが、わかりませんここで最高の開始最大サブ配列を更新する方法は = 6 (5+0+1) です

4

1 に答える 1