一. 题目
二. 思路
三. 代码
class Solution
{
public int maxProduct(int[] nums)
{
int n = nums.length;
long[] fmax = new long[n], fmin = new long[n];
for (int i = 0; i < n; ++i)
fmax[i] = fmin[i] = nums[i];
for (int i = 1; i < n; ++i)
{
fmin[i] = Math.min(nums[i], Math.min(fmin[i - 1] * nums[i], fmax[i - 1] * nums[i]));
fmax[i] = Math.max(nums[i], Math.max(fmin[i - 1] * nums[i], fmax[i - 1] * nums[i]));
}
return (int) Arrays.stream(fmax).max().getAsLong();
}
}