Discription:
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
.
Solution:
//用两个值分别以前一个数结尾子数组的最大乘积和最小乘积
int maxProduct(vector<int>& nums) {
int max0 = nums[0], min0 = nums[0];
int result = nums[0];
for (int i = 1; i < nums.size(); i++){
int temp1 = max0*nums[i], temp2 = min0*nums[i];
max0 = max(max(temp1, temp2), nums[i]);
min0 = min(min(temp1, temp2), nums[i]);
result = max(max0, result);
}
return result;
}
GitHub-Leetcode:https://github.com/wenwu313/LeetCode