int Maxsubseqval(int a[],int N)//N是数组长度
{
int Thisnum,Maxnum;
Thisnum=Maxnum=0;
for(int i=0;i<N;i++)
{
Thisnum+=a[i];
if(Thisnum>Maxnum)//始终找最大的子列出现就记录下来
{
Maxnum=Thisnum;
}
else if(Thisnum<0)//任意时刻出现负数子列直接置零从头开始
{
Thisnum=0;
}
}
}
一个复杂度是O(n)的求最大子列和的办法
最新推荐文章于 2024-07-10 16:47:58 发布