题解 | #DP迭代法实现连续最大和#
连续最大和
http://www.nowcoder.com/practice/5a304c109a544aef9b583dce23f5f5db
#include <bits/stdc++.h>
using namespace std;
int main() {
int size, num; cin >> size;
vector<int> numVec(size), accSum(size);
for (int i=0; i<size; i++) {
cin >> num;
numVec[i] = num;
}
accSum[0] = numVec[0];
int maxNum = numVec[0];
for (int i=1; i<size; i++) {
if ( accSum[i-1] >= 0 ) {
accSum[i] = accSum[i-1] + numVec[i];
} else {
accSum[i] = numVec[i];
}
maxNum = max(maxNum, accSum[i]);
}
cout << maxNum;
return 0;
}
网易游戏公司福利 637人发布