Find the contiguous subarray within an array (containing at least one number) which has the largest product.
For example, given the array [2,3,-2,4]
,
the contiguous subarray [2,3]
has the largest product = 6
.
子陣列乘積最大
class Solution { public: int maxProduct(int A[], int n) { if(n < 1) return 0; int minv = A[0], maxv = A[0], res = A[0]; for(int i = 1 ; i < n; ++ i){ int tmpMin = min(minv*A[i],maxv*A[i]); int tmpMax = max(minv*A[i],maxv*A[i]); minv = min(tmpMin,A[i]); maxv = max(tmpMax,A[i]); res=max(maxv,res); } return res; };