题解 | #连续最大和#
连续最大和
https://www.nowcoder.com/practice/5a304c109a544aef9b583dce23f5f5db
#include <iostream> #include <vector> using namespace std; int main() { int a; while (cin >> a) { // 注意 while 处理多个 case int b; vector<int> dp; int res; for(int i = 0;i < a;i++) { cin >> b; if(i == 0) { res = b; dp.push_back(b); } else { if(dp[i-1] > 0) { dp.push_back(dp[i-1] + b); } else { dp.push_back(b); } res = max(res, dp[i]); } } cout << res; } } // 64 位输出请用 printf("%lld")
要输出不是要返回值,卡了半天