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
.
找最大最小值。
int maxProduct(int A[], int n) { //C++ int size = n; if(size == 1) return A[0]; vector<int> Max(size); vector<int> Min(size); Max[0] = A[0]; Min[0] = A[0]; for(int i=1; i<size; i++){ Max[i] = max(max(Max[i-1]*A[i],Min[i-1]*A[i]),A[i]); Min[i] = min(min(Max[i-1]*A[i],Min[i-1]*A[i]),A[i]); } int result = Max[0]; for(int i=0; i<size; i++) if(Max[i]>result) result = Max[i]; return result; }
[leetcode] 152 Maximum Product Subarray
原文地址:http://blog.csdn.net/chenlei0630/article/details/43156005