#include <iostream>
using namespace std;
const int MIN_INT = -2147483647;
int maxSum(const int *arr, int len){
int my_max = MIN_INT;
int tmp = 0;
for(int i = 0; i < len; i++){//从头到尾。。
tmp += arr[i];//遍历相加。
if(my_max < tmp){//更新my_max
my_max = tmp;
}
if(tmp < 0){//起了反作用。。
tmp = 0;//从头来
}
}
return my_max;
}
int main(){
int arr[8] = {1, -2, 3, 10, -4, 7, 2, -5};
cout<<"最大值:"<<maxSum(arr, 8) <<endl;
return 0;
}求整型数组所有子串的和中的最大值
最新推荐文章于 2021-08-19 13:30:06 发布
本文介绍了一个使用C++实现的最大子数组求和算法,该算法能够有效地找到并返回给定数组中具有最大和的连续子数组的总和。通过对数组进行遍历并在过程中动态调整累积和的方式,确保了即使在数组包含负数的情况下也能正确找到最大子数组的和。
776

被折叠的 条评论
为什么被折叠?



