现在的位置: 首页 > 综合 > 正文

最大子串问题

2013年10月13日 ⁄ 综合 ⁄ 共 300字 ⁄ 字号 评论关闭

比如-2,11,-4,13,-5,-2;

该串最大子串为从2-4

11+(-4)+13=20

#include<stdio.h>
int maxsub(int *a,int n)
{
	int i,j;
	int max=0,thissum=0;
	for(i=0;i<n;i++)
	{
		thissum+=*(a+i);
		if(thissum>max)
			{
				max=thissum;
			}
		else if(thissum	<0){
			thissum=0;	
			}
	}	
	return max;
}

int main()
{
	int a[]={-2,11,-4,13,-5,-2};
	int sum=maxsub(a,6);
	printf("%d\n",sum);
}

他的时间复杂度为O(n)

【上篇】
【下篇】

抱歉!评论已关闭.