#include <iostream>
#include <algorithm>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int maxSum(int* m,int size){
int * maxArr=new int[size];
maxArr[0]=m[0];
for(int j=1;j<size;j++){
if(maxArr[j-1]<=0){
maxArr[j]=m[j];
}
else{
maxArr[j]=m[j]+maxArr[j-1];
}
}
sort(maxArr,maxArr+size);
return maxArr[size-1];
}
int main(int argc, char** argv) {
//测试
int p[]={1,-2,3,10,-4,7,2,-5};
cout<<"数组p的连续子数组的最大和为:"<<maxSum(p,8)<<endl;
return 0;
}
寻找数组的连续子数组的最大和
最新推荐文章于 2021-10-07 21:06:07 发布