首页 > 代码库 > leetcode. Maximum Product Subarray

leetcode. Maximum Product Subarray

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.

 

 1 int maxProduct(int A[], int n)  2     { 3         if (n <= 0) 4             return n; 5         int suffix_max, global_max, suffix_min; 6          7         suffix_max = A[0]; 8         suffix_min = A[0]; 9         global_max = A[0];10         for (int i = 1; i < n; i++)11         {12             int tmax = suffix_max * A[i];13             int tmin = suffix_min * A[i];14             suffix_max = max(A[i], max(tmax, tmin));15             suffix_min = min(A[i], min(tmax, tmin));16             global_max = max(global_max, suffix_max);17         }18         19         return global_max;20     }

 

leetcode. Maximum Product Subarray