最大子数组和

#include<iostream>
int max(int a,int b)
{
 return (a>b?a:b);
}
int findBiggestSum(int *B,int k)
{
 int m=0,n;//m存储:到B[i[结束的最大子数组和
 //n存储B[i]之前的最大数组和,可能包括B[i],也可能不包括
 int i;
 n=B[0];
 for(i=1;i<k;i++)
 {
  m=max(B[i],m+B[i]);
  n=max(n,m);
 }
 return n;
}
int main()
{
 int A[10]={2,4,-9,4,8,7,-3,-7,6,3};
 int sum;
 sum=findBiggestSum(A,10);
 std::cout<<sum<<std::endl;
 system("pause");
}

 

posted @ 2013-10-30 21:18  夜雨阑珊  阅读(159)  评论(0编辑  收藏  举报