动态规划
class Solution:
def maxProduct(self, nums):
n = len(nums)
dpz = [1] * (n + 1)
dpf = [1] * (n + 1)
for i in range(1, n + 1):
dpz[i] = max(nums[i - 1] * dpz[i - 1], nums[i - 1] * dpf[i - 1], nums[i - 1])
dpf[i] = min(nums[i - 1] * dpz[i - 1], nums[i - 1] * dpf[i - 1], nums[i - 1])
return max(dpz[1:])