#include <iostream>
using namespace std;
int maxSum(int *arr, int L){
if(arr==NULL || L == 0){
return 0;
}
int Max=INT_MIN;
int cur=0;
for(int i=0;i!=L;i++){
cur+=arr[i];
Max=max(Max,cur);//更新每轮最大的累加和
cur=cur<0?0:cur;//抛弃任何可能为负数的全局
}
return Max;
}
int main(){
int arr[10] = {1,3,-4,0,-1,-5,7,-9,8,10};
cout<<maxSum(arr,10);
return 0;
}
给定一个数组arr,返回子数组的最大累加和
最新推荐文章于 2021-08-21 12:13:24 发布