int Kadane(int *a,int n)
{
int sum=a[0],max=a[0],i;
for(int i=1;i<=n;i++)
{
sum=sum+a[i];
if(sum>max)
max=sum;
if(a[i]>max)
max=a[i];
}
return max;
}
int maxSubarraySumCircular(int* A, int ASize)
{
int i,k1,totalsum,k2,maxSum;
totalsum=0;
k1=Kadane(A,ASize);
for(i=0;i<ASize;i++)
{
totalsum=totalsum+A[i];
A[i]=-A[i];
}
k2=Kadane(A,ASize);
maxSum=totalsum+k2;
return (maxSum>k1 && maxSum!=0) ? maxSum : k1;
}
当我运行此代码时,它向我显示地址清理程序的运行时错误:地址处的堆缓冲区溢出:我在那里做了什么?