最大子段和
来源:百度文库 编辑:神马文学网 时间:2024/06/04 13:00:35
#include
int MaxSubSum(int a[],int left,int right);
int MaxSum(int n,int a[]);
int main()
{
int a[]={-2,11,-4,13,-5,-2};
int s=MaxSum(6,a);
cout<return 0;
}
int MaxSubSum(int a[],int left,int right)
{
int sum=0;
if(left==right)sum=a[align=left]>0?a[align=left]:0;
else
{
int center=(left+right)/2;
int leftsum=MaxSubSum(a,left,center);
int rightsum=MaxSubSum(a,center+1,right);
int s1=0;
int lefts=0;
for(int i=center;i>=left;i--)
{
lefts+=a[i];
if(lefts>s1)s1=lefts;
}
int s2=0;
int rights=0;
for(i=center+1;i<=rights;i++)
{
rights+=a[i];
if(rights>s2)s2=rights;
}
sum=s1+s2;
if(sumif(sum}
return sum;
}
int MaxSum(int n,int a[])
{
return MaxSubSum(a,1,n);
}
int MaxSubSum(int a[],int left,int right);
int MaxSum(int n,int a[]);
int main()
{
int a[]={-2,11,-4,13,-5,-2};
int s=MaxSum(6,a);
cout<
}
int MaxSubSum(int a[],int left,int right)
{
int sum=0;
if(left==right)sum=a[align=left]>0?a[align=left]:0;
else
{
int center=(left+right)/2;
int leftsum=MaxSubSum(a,left,center);
int rightsum=MaxSubSum(a,center+1,right);
int s1=0;
int lefts=0;
for(int i=center;i>=left;i--)
{
lefts+=a[i];
if(lefts>s1)s1=lefts;
}
int s2=0;
int rights=0;
for(i=center+1;i<=rights;i++)
{
rights+=a[i];
if(rights>s2)s2=rights;
}
sum=s1+s2;
if(sum
return sum;
}
int MaxSum(int n,int a[])
{
return MaxSubSum(a,1,n);
}
最大子段和
求子数组的最大和
最大子矩阵问题
济南“7-9”爆炸案主犯段义和、陈志被执行死刑--新闻频道-中华网-中国最大职业人士门户
程序员面试题精选(03)-求子数组的最大和
经典算法——求最大子序列和(1) 收藏
程序员面试题精选(03)-求子数组的最大和 - 涛声依旧 - 网易博客
段义和、陈志和柳海平
段义和、陈志和柳海平
土方子和保健知识
主线和子线
董子和
基金:目前只是史上最大牛市的第一段
段义和、宋江杀二奶的异同
“段义和牵线搭桥,孙淑义出面搞定”
公因数和最大公因数
和蓝子《夜雨有感》
渔歌子 张志和
大兔子和小兔子
大兔子和小兔子
最大的利好和最大的利空
PKU 1050 动态规划-解决最大子矩阵问题
世界最大大型强子对撞机对撞成功
段旭的空间 - No.67:尽你最大努力,然后一走了之 - 腾讯博客 - Qzone