很多人肯定都做过求连续子数组的最大和问题,相信大多数人都很容易将代码写出来。
首先采用最简单的暴力法,代码如下:
<span style="font-size:18px;"> int maxProduct(int A[], int n) {
if(1==n)
return A[0];
int i,j;
int sum=A[0];
int temp;
for(i=0;i<n;i++)
{
temp=A[i];
for(j=i+1;j<n;j++)
{
temp=temp*A[j];
if(temp>sum)
sum=temp;
}
}
return sum;
}</span>
相对于求连续字数组的最大和问题,最大乘积有一些不同,因为我们都知道,数组中存在正数,负数,零,使得最大乘积可能不是连续的递增。