类似动态规划
class Solution {
public:
int maxProduct(vector<int>& nums) {
int m = 1, M = 1, ans = -999999, t;
for (auto &x : nums) {
ans = max(ans, x);
if (x>0) M *= x, m *= x;
else t = M, M = m * x, m = t * x;
ans = max(M, ans);
M = max(1, M);
m = min(1, m);
}
return ans;
}
};