您的位置:首页 > 其它

求连续子数组的最大和

2015-03-23 14:13 197 查看
#include <iostream.h>

int maxsum(int *a,int n)

//于此处,你能看到上述思路2代码(指针)的优势

{

int max=a[0]; //全负情况,返回最大数

int sum=0;

for(int j=0;j<n;j++)

{

if(sum>=0) //如果加上某个元素,sum>=0的话,就加

sum+=a[j];

else

sum=a[j]; //如果加上某个元素,sum<0了,就不加

if(sum>max)

max=sum;

}

return max;

}

int main()

{

//int a[]={-1,-2,-3,-4};

int a[ ]={1, -2, 3, 10, -4, 7, 2, -5};

int size_t=sizeof(a)/sizeof(a[0]);

cout<<maxsum(a,size_t)<<endl;

// sizeof(a)是一个数组总共的字节数哈

// sizeof(a[0])就是一个元素占的字节数

// 这么一除就是这个数组滴长度了~

//cout<<maxsum(a,8)<<endl;

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: