现在给你n个整数a1,a2,…,an。 请问其中的最大子段和是多少? 子段指的是数组中连续的一段数字,这些数字的和被称为子段和。 注意,至少要取一个数。 输入格式 第一行一个整数n。 接下来一行n个整数,a1,a2,…,an。 输出格式 一个数,表示答案。 样例输入 5 2 -3 1 2 -1 样例输出 3 样例解释 1 2 的子段和最大。 数据范围 对于100%的数据,保证1≤n≤500,−500≤ai≤500。c++代码
时间: 2024-01-17 21:03:49 浏览: 139
好的,以下是 C++ 代码实现:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 510;
int n;
int a[N], f[N];
int main() {
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
f[1] = a[1];
int res = f[1];
for (int i = 2; i <= n; i++) {
f[i] = max(f[i-1]+a[i], a[i]);
res = max(res, f[i]);
}
cout << res << endl;
return 0;
}
```
阅读全文