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; } else { int maxTemp = A[0]; int minTemp = A[0]; int result = A[0]; for (int i=1;i<n;i++) { int a = maxTemp * A[i]; int b = minTemp * A[i]; int c = A[i]; maxTemp = max(max(a,b),c); minTemp = min(min(a,b),c); result = max(maxTemp,result); } return result; } } };