#include
#include
#include
using namespace std;
class Solution {
public:
int maxSubArray(vector& nums) {
if (nums.empty())
return 0;
int res = nums[0];
int sum = 0;
for (int num : nums)
{
if (sum > 0)
sum += num;
else
sum = num;
res = max(res, sum);
}
return res;
}
};
int main()
{
int n = 0;
cin >> n;
vectorarr(n);
for (int& a : arr)
{
cin >> a;
}
Solution s;
cout << s.maxSubArray(arr);
return 0;
}
本文介绍了一个使用C++实现的最大子数组求和算法,通过遍历数组并使用动态规划思想,找到具有最大和的连续子数组。算法首先检查输入数组是否为空,然后初始化结果变量和累加和变量,接着遍历数组,根据当前累加和的正负决定是否将其加入到当前子数组中,同时更新结果变量以保存最大子数组和。
246

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



