题解 | #最大序列和#
最大序列和
https://www.nowcoder.com/practice/df219d60a7af4171a981ef56bd597f7b
经典dp思想
#include<iostream>
#include<climits>
using namespace std;
#define N 1000000
long long a[N];
long long dp[N]; //每一个di[i]要包括a[i]在内,才能保证后续的dp[i]可以连上
long long maxsubsequence(int n) {
long long res = -INT_MAX;
for (int i = 0; i < n; i++) {
if (i == 0) {
dp[i] = a[i];
}
else {
dp[i] = max(a[i], dp[i - 1] + a[i]);
}
if (dp[i] > res) {
res = dp[i];
}
}
return res;
}
int main() {
int n;
while (cin >> n) {
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
long long answer = maxsubsequence(n);
cout << answer << endl;
}
}
查看10道真题和解析
CVTE公司福利 669人发布