#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int maxSubArrSum(vector<int> arr)
{
if (arr.empty())
return 0;
int tMax = arr[0];
int maxSum = tMax;
for (int i = 1; i < arr.size(); i++)
{
tMax = max(tMax + arr[i], arr[i]);
maxSum = tMax > maxSum ? tMax : maxSum;
}
return maxSum;
}
int main()
{
//读取数组
cout << maxSubArrSum({ 1,-2,3,7,-5,8,-2,1 }) << endl;
return 0;
}
话到嘴边就不想说了,没事锻炼动态规划思想,顺手了这个吧。
本文介绍了一个使用动态规划思想求解最大子数组和的算法实现。通过遍历数组,利用临时变量跟踪当前最大子数组和,并更新全局最大值。代码示例展示了如何计算包含正负数的数组中连续子数组的最大和。
1465

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



