問題描述:java
問題連接:152 Maximum Product Subarraypython
在經典的算法解析中, 有關的分治和動態規劃的,經典題型之一就是求最大子段和, 這道題就是他的變形:求最大子段積; 算法
這個問題的核心思路與解決最大子段和相同, 可是惟一須要注意的就是負數的狀況。express
每次在比較當前最大結果的同時,也須要保存當前最小結果,因此每一個當前點i處的取值, 就是從當前值nums[i], 和cur_max+nums[i],spa
cur_min+nums[i]三者中取極值:code
每次的取值遞推路徑如上所示, 應該還算清晰。blog
如下是code,由於java沒有相似python的多重賦值的功能,(相似 valueA, valueB = expressionA(), expressionB());因此每次依靠多餘的兩隻臨時變量leetcode
保存臨時最大最小值, 不然當執行是數值會被改變。get