0
    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;
    } 

当我运行此代码时,它向我显示地址清理程序的运行时错误:地址处的堆缓冲区溢出:我在那里做了什么?

4

0 回答 0