1007 Maximum Subsequence Sum (25 分) 经典题 具体代码 #include<iostream> #include<malloc.h> using namespace std; #define maxsize 100001 int main() { int n; int number[maxsize + 1]; bool flag = true; int max = 0;//记录整个比较过程中的最大值 int tmp = 0;//短暂的记录变化的过程 int first=0, last=0;//first表示的是最大列第一个数,last表示最大列的最后一个数 int first_tmp; cin >> n; for (int i = 1; i <= n; i++) { cin >> number[i]; } for (int i = 1; i <= n; i++) { if (!tmp) { first_tmp = i; } tmp += number[i]; if (tmp < 0) { tmp = 0; } else { if (tmp > max) { max = tmp; last = i; first = first_tmp; } } if(number[i]==max) { last = i; first = first_tmp; } } if (last == 0) { first = 1; last = n; } cout << max <<" "<<number[first]<< " " << number[last]; return 0; }