[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
.
分析:参考http://blog.csdn.net/worldwindjp/article/details/39826823
class Solution { public: int maxProduct(vector<int>& nums) { if (nums.empty()) return 0; int max_product = nums[0]; int max_pre = nums[0]; int min_pre = nums[0]; for (auto iter = nums.begin() + 1; iter != nums.end(); ++iter) { int max_temp = max_pre * (*iter); int min_temp = min_pre * (*iter); max_pre = max(max(max_temp, min_temp), (*iter)); min_pre = min(min(max_temp, min_temp), (*iter)); max_product = max(max_pre, max_product); } return max_product; } };