gpt4 book ai didi

c++ - Max SubArray kadane 算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:19:55 24 4
gpt4 key购买 nike

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}Best start should be index 2 and best end index 4 我得到了最好的结局,但我不知道如何更新最好的开始这里的最大子数组为 = 6 (5+0+1)

最佳答案

保持潜在的最佳开始指数

bestStartCandidate = 0;

if (max_ending_here < 0)
{
max_ending_here = 0;
bestStartCandidate = i + 1;
}
if (max_ending_here > max_so_far)
{
max_so_far = max_ending_here;
bestStart = bestStartCandidate;
bestEnd = i;
}

关于c++ - Max SubArray kadane 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35978765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com