连续子序列最大和O(n) 算法

public  int maxSub(int a[]){
  int i,j;
  int max=0,temp=0;//保存最大值

  int start=0,end=0;//起始位置
  for(i=0,j=0;j<a.length;j++){
   temp+=a[j];
   if(temp>max){
    max=temp;
    start=i;
    end=j;
    
   }else if(temp<0){
    i=j+1;//从j+1处重新计算
    temp=0;
   }
  }
  return max;
 }

posted @ 2010-11-02 10:30  hustyyg  阅读(332)  评论(0编辑  收藏  举报