前言
###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!
习题
1.乘积最大子数组
题目链接:152. 乘积最大子数组 - 力扣(LeetCode)
题面:
代码:
class Solution {
public int maxProduct(int[] nums) {
int n = nums.length;
int[] flag1 = new int[n];
int[] flag2 = new int[n];
flag1[0] = nums[0];
flag2[0] = nums[0];
int max = nums[0];
for(int i = 1;i<n;i++){
flag1[i] = Math.max(Math.max(flag1[i-1]*nums[i],flag2[i-1]*nums[i]),nums[i]);
flag2[i] = Math.min(Math.min(flag1[i-1]*nums[i],flag2[i-1]*nums[i]),nums[i]);
if(flag1[i]>max)max = flag1[i];
}
return max;
}
}
后言
上面是动态规划相关的习题,共勉