题目描述
输入:一串数组
输出:最大子列和

代码

  1. #include<cstdio>
  2. #include<vector>
  3. #include<algorithm>
  4. using namespace std;
  5. const int maxn = 1000;
  6. vector<int> fn(maxn), dp(maxn);
  7. int main(){
  8. int n, temp;
  9. scanf("%d", &n);
  10. for(int i = 0; i < n; i++){
  11. scanf("%d", &fn[i]);
  12. }
  13. dp[0] = fn[0];
  14. for(int i = 1; i < n; i++){
  15. dp[i] = max(fn[i], dp[i - 1] + fn[i]);
  16. }
  17. int max = 0;
  18. for(int i = 0; i < n; i++){
  19. if(dp[i] > dp[max])
  20. max = i;
  21. }
  22. printf("%d", dp[max]);
  23. return 0;
  24. }