int MaxSum(int *a,int n,int &besti,int &bestj){
int b = 0;
int maxsum = 0;
besti = 1;
bestj = 1;
for (int i = 1; i <= n; ++i)
{
if(b < 0){
b = a[i];
besti = i;
}else
b += a[i];
if(b > maxsum){
maxsum = b;
bestj = i;
}
}
return maxsum;
}
求数组的最大子段和,动态规划 时间复杂度O(n)
最新推荐文章于 2024-12-18 21:48:34 发布