1 /* 2 从头开始,每次加过之后和之前的最大值比较,若比最大值大,则更新最大值 3 如果加到某个数时,值为负,那么下次累加的起点就要改变 4 */ 5 int maxSubArray(int A[], int n) { 6 if(A==NULL||n<=0) 7 return 0;//这个地方经常会遇到,就是说返回值是什么 8 int i,sum=0,max=A[0]; 9 for(i=0;i<n;++i){ 10 sum+=A[i]; 11 max=sum>max?sum:max; 12 if(sum<0) 13 sum=0;//如果加到某个数时,值为负,那么下次累加的起点就要改变 14 } 15 return max; 16 }
AC