Maximum Subarray

 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

 

posted on 2014-03-25 20:22  crane_practice  阅读(95)  评论(0编辑  收藏  举报

导航