标签:
【问题描述】
在长度为N的整形数组中,求连续子串的和的最大值,要求复杂度为O(N)。
例如:1 2 3 -1 -20 100 34,结果为134。
#include<stdio.h> #include<iostream> #include<math.h> #include<stdlib.h> #include<ctype.h> #include<algorithm> #include<vector> #include<string> #include<queue> #include<stack> #include<set> #include<map> using namespace std; int n, p[10010]; int main() { while (cin >> n) { for (int i = 0; i < n; i++) cin >> p[i]; int b = 0, sum = 0; for (int i = 0; i < n; i++) { if (b > 0) { b += p[i]; } else { b = p[i]; } if (b > sum) sum = b; } cout << sum << endl; } return 0; }
标签:
原文地址:http://blog.csdn.net/u014427196/article/details/44080943