第07章:最大子串和
给定由n个整数(可能为负整数)组成的序列A1,A2,A3,...,An,求该序列的连续子段的和的最大值。当所有整数均为负整数时定义其最大子段和为0
#include<iostream> #define MAXSIZE 100 using namespace std; int MaxSum(int[],int); int main(void) { int n; int array[MAXSIZE]; while(cin>>n) { for(int i=1;i<=n;i++) { cin>>array[i]; } cout<<MaxSum(array,n)<<endl; } return 0; } int MaxSum(int array[],int n) { int b=0; int sum=0; for(int i=1;i<=n;i++) { if(b>0) { b+=array[i]; } else { b=array[i]; } if(b>sum) { sum=b; } } return sum; } |