一、题目说明
给出一段长度为n的数列,要求从中找出连续的一段来使得总和最大。输入包含两行,第1行表示数列长度为N(N<=100 000),第2行包括N个整数来描述这个数列,每个整数的绝对值不超过1 000。输出只有一个整数,为最大的连续段总和。
二、输入输出样例
输入1
5
1 -2 3 1 -4
输出1
4
三、题目分析
注意:本题所有实例采用从同路径下in.txt文件输入,使用C语言风格输入输出。
(一)穷举法
分析
本题采用穷举法即将所有可能的连续子序列分别求和取其最大值。
题解示例
#include <cstdio>
int main() {
FILE *f = fopen("in.txt", "r");
int n;
fscanf(f, "%d", &n);
int data[n + 5], i;
for(i = 0; i < n; i++) {
fscanf(f, "%d", &data[i]);
}
int begin, end, sum, max;
for(begin = 0; begin < n; begin++) {
for(end = n - 1; end<