leecode 每日解题思路 152 Maximun Product Subarray

问题描述:

问题链接:152 Maximum Product Subarray


  
在经典的算法解析中, 有关的分治和动态规划的,经典题型之一就是求最大子段和, 这道题就是他的变形:求最大子段积; 

这个问题的核心思路与解决最大子段和相同, 但是唯一需要注意的就是负数的情况。

  每次在比较当前最大结果的同时,也需要保存当前最小结果,所以每个当前点i处的取值, 就是从当前值nums[i], 和cur_max+nums[i],

cur_min+nums[i]三者中取极值:

  

每次的取值递推路径如上所示, 应该还算清晰。

以下是code,因为java没有类似python的多重赋值的功能,(类似 valueA, valueB = expressionA(), expressionB());所以每次依靠多余的两只临时变量

保存临时最大最小值, 否则当执行是数值会被改变。

 

posted on 2015-09-06 16:50  thoupin  阅读(395)  评论(0编辑  收藏  举报

导航