最大连续和--分治

来源:互联网 发布:古墓丽影9 mac 种子 编辑:程序博客网 时间:2024/04/29 21:35
int maxsum(int *A,int x,int y){    if(y-x==1)        return A[x];    int mid=(x+y)>>1;    int MAX=max(maxsum(A,x,mid)+maxsum(A,mid+1,y));    int v=0,L=A[mid-1];    for(int i=mid-1;i>=x;i--)        L=max(L,v+=A[i]);    v=0,R=A[mid];    for(int i=mid;i<y;i++)        R=max(R,v+=A[i]);    return max(MAX,L+R);}

原创粉丝点击