#include using namespace std;
int maxsum(int *src,int n,int &spos,int &epos)
else
if(start>all)
}return all;
}int max(int a, int b, int c)
else }
void toneg(int *src,int len)//整個陣列取反
}int ext1(int *src, int n)
cout
cout
tmp=maxsum(src,n,s,e);
tmp=-1*tmp;
sum3=sum1-tmp;//解是從陣列中刪掉一塊和為負數且絕對值最大的子陣列
cout
}int main()
;int s2=;
int s3=;
cout<<"s1 all:"
}
程式設計之美2 14求子陣列之和的最大值
分而治之的思想 divide and conquer includeusing namespace std int max int a,int b int maxsum int a,int low,int high includeusing namespace std int max int a,i...
程式設計之美2 14 求子陣列之和的最大值
問題描述 乙個有n個整數元素的一維陣列 a 0 a n 1 這個陣列當然有很多子陣列,那麼子陣列之和的最大值是多少呢?思路一 最直接能想到的方法就是列舉,暴力解法,複雜度為o n 2 思路二 遞迴解法,將陣列分成長度相等的兩段陣列,分別為a 0 a n 2 1 和a n 2 a n 1 分別求出最大...
2 14 子陣列之和的最大值
問題 求陣列的子陣列之和的最大值 解法一 遍歷 include include int maxsum int a,int n if sum maximum maximum sum return maximum int main printf d n maxsum array,5 return 0 解...