Maximum Product Subarray

来源:互联网 发布:网络黑白txt 花无涯 编辑:程序博客网 时间:2024/05/16 00:47

source: http://blog.csdn.net/sbitswc/article/details/39546719

Analysis:

similar like Maximum Subarray question

difference is the max value could be get from 3 situations

current maxValue * A[i]  if A[i]>0

current minValue * A[i]  if A[i]<0

A[i]  

We need to record current maxValue, current minValue and update them every time get the new product

class Solution {public:    int maxProduct(int A[], int n)     {        if(n <= 0) return 0;        if(n == 1) return A[0];                int curMin = A[0];        int curMax = A[0];        int ans = A[0];                for(int i=1; i<n; i++)        {            int temp1 = A[i] * curMin;            int temp2 = A[i] * curMax;            curMin = min(A[i], min(temp1, temp2));            curMax = max(A[i], max(temp1, temp2));            ans = max(curMax, ans);        }        return ans;    }};


0 0
原创粉丝点击