动态规划算法leetcode.152
public int maxProduct(int[] nums) {
int len = nums.length;
if (len == 0) {
return 0;
}
int[][] dp = new int[len][2];//dp[i][0]表示以第i个数结尾的某个连续子数组乘积最小值,另一列为最大值
//初始化
dp[0][0] = nums[0];
dp[0][1] = nums[0];
for (int i = 1; i < len; i++) {
//第i个数大于0时,应该用前i-1的最大值相乘得到dp[i][1],最小值相乘得到dp[i][0]
if (nums[i] >= 0)
{
dp[i][1] = Math.max(nums[i], dp[i - 1][1] * n
共有 0 条评论