简单动态规划,跟最大子串和类似。
一维状态空间可以经过压缩变成常数空间。
代码:
int maxProduct(int A[], int n) {
if (n <= )
return ; int res = A[n - ];
int minp = A[n - ];
int maxp = A[n - ]; for (int i = n - ; i >= ; i--) {
int tmp = minp;
minp = min(A[i], min(A[i] * minp, A[i] * maxp));
maxp = max(A[i], max(A[i] * tmp, A[i] * maxp));
res = max(res, maxp);
} return res;
}