您的位置:首页 > 其它

求数组中乘积最大的子串

2014-10-29 09:28 162 查看
double fun(double *a,int n)
{
	double maxend=a[0],minend=a[0];
	double end1,end2;
	double maxresult=a[0];
	for (int i=1;i<n;++i)
	{
		//maxend存放离当前点最近的几个连续数的最大乘积
		//minend存放离当前点最近的几个连续数的最小乘积
		//因为当前的数可能是负数,所以最小乘积需要保存
		end1=maxend*a[i];
		end2=minend*a[i];
		//要与a[i]比较,因为有可能前面已保存的maxend和minend是介于-1到1的小数
		maxend=max(max(end1,end2),a[i]);     
		minend=min(min(end1,end2),a[i]);
		maxresult=max(maxresult,maxend);
	}
	return maxresult;
}



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