Maximum Product Subarray动态规划思想

该题即是昨天没有做出来的题目,想了很久,想出了一个普通的做法,提交发现超时了。思想是新建一个数组,保存每个元素与后面的元素相乘后得到的最大值,然后再在该数组中选出最大的值,返回。【笨死

发现行不通后决定还是求教度娘了。

果然大神无处不在,该题可运用动态规划思想解决。考虑到正负数相乘后会出现的各种结果,采取保存局部最小和局部最大值的方式。列出公式:

int a=localmin*A[i]

int b=localmax*A[i]

localmin = min(A[i],min(a,b))

localmax = max(A[i],max(a,b))

ans = max(ans,localmax)返回ans 即为所求。

 

需再多思考运用该方法。

 

posted @ 2014-11-01 23:56  zhuoyu05  阅读(148)  评论(0编辑  收藏  举报