题解 | 连续子数组最大和
连续子数组最大和
https://www.nowcoder.com/practice/1718131e719746e9a56fb29c40cc8f95
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int a[n];
int dp[n];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
dp[0] = a[0];
for (int i = 1; i < n; i++) {
dp[i] = (dp[i - 1] + a[i] ) > a[i] ? (dp[i - 1] + a[i]) : a[i];
}
int max = dp[0];
for (int j = 0; j < n; j++) {
if (dp[j] > max) {
max = dp[j];
}
}
printf("%d", max);
return 0;
}
查看10道真题和解析