Leetcode.152 https://leetcode.com/problems/maximum-product-subarray/
def solve_max_product(A): m = A.copy() n = A.copy() for i in range(1, len(A)): m[i] = max(m[i - 1] * A[i], max(A[i], n[i - 1] * A[i])) n[i] = min(n[i - 1] * A[i], min(A[i], m[i - 1] * A[i])) return max(m) a = [2, 3, -2, 4] print(solve_max_product(a))