有一个数组,让找到两个不重复的连续子序列A,B ,求Max(Sum(A)-Sum(B)。

来源:互联网 发布:oracle数据库应急预案 编辑:程序博客网 时间:2024/04/29 18:18

有一个数组,让找到两个不重复的连续子序列A,B ,求Max(Sum(A)-Sum(B)。

int Maxsum(vector<int>&A){int sum=0,ma=-10000;vector<int>sumA;vector<int>sumB;for(int i=0;i<A.size();i++){sum+=A[i];ma=max(ma,sum);sumA.push_back(ma);if(sum<0)sum=0;}sum=0,ma=10000;for(int i=A.size()-1;i>0;i++){sum+=A[i];ma=min(ma,sum);sumB.push_back(ma);}int ans=-1000;for(int i=0;i<A.size();i++)ans=max(ans,sumA[i]-sumB[i+1]);return ans;}


阅读全文
0 0