Kadane算法

介绍:用于在O(n)时间复杂度内求解最大子数组和问题的高效算法。
代码实现:
int Kadane(int n,int a[])
{
int curr_sum=a[0];
int max_sum=a[0];
for(i=1;i<n;i++)
{
curr_sum=max(a[i],curr_sum+a[i]);
max_sum=max(curr_sum,max_sum);
}
return max_sum;
}
for循环遍历,curr_sum代表着是从当前位置新开一个子数组,还是将curr_sum添加到上一个子数组,max_sum则代表最大子数组之和,算法本质是dp的状态转移。
题目见cf2107C

posted @ 2025-10-23 16:19  thy825  阅读(20)  评论(0)    收藏  举报