文章目录
Leetcode152
1.问题描述
2.解决方案
1.状态转移方程没那么简单,最优状态不一定来源于dp[n-1]×nums[i]和nums[i]最大值,如果是负数,那可能和前面的最小值乘起来更大
2.所以要维护两个dp数组,一个是以i结尾最大子数组和最小子数组,这个是因为乘积本身就比较特殊
3.最简单的思考方式,就是分情况讨论,如果一个数是正数,那么以它结尾最大,那肯定希望是一个最大正数,如果一个数是负数,那以它结尾最大,那肯定希望是一个最小负数
package leetcode;
public class lc152 {
public int maxProduct(int[] nums) {
if(n