首页 > 代码库 > Leetcode#152 Maximum Product Subarray

Leetcode#152 Maximum Product Subarray

原题地址

 

简单动态规划,跟最大子串和类似。

一维状态空间可以经过压缩变成常数空间。

 

代码:

 1 int maxProduct(int A[], int n) { 2         if (n <= 0) 3             return 0; 4              5         int res = A[n - 1]; 6         int minp = A[n - 1]; 7         int maxp = A[n - 1]; 8          9         for (int i = n - 2; i >= 0; i--) {10             int tmp = minp;11             minp = min(A[i], min(A[i] * minp, A[i] * maxp));12             maxp = max(A[i], max(A[i] * tmp, A[i] * maxp));13             res = max(res, maxp);14         }15         16         return res;17 }

 

Leetcode#152 Maximum Product Subarray