您的位置:首页 > 其它

LeetCode 152. Maximum Product Subarray(最大连续乘积)

2017-07-11 16:39 393 查看
class Solution {
public:int maxProduct(vector<int>& nums) {vector<int> dpmax(nums.size());vector<int> dpmin(nums.size());dpmax[0] = nums[0];dpmin[0] = nums[0];int ans = nums[0];for (int i = 1; i < nums.size(); ++i){dpmax[i] = max(dpmax[i - 1] * nums[i], nums[i]);dpmax[i] = max(dpmin[i - 1] * nums[i], dpmax[i]);dpmin[i] = min(dpmin[i - 1] * nums[i], nums[i]);dpmin[i] = min(dpmax[i - 1] * nums[i], dpmin[i]);ans = max(ans, dpmax[i]);}return ans;}};
维护两个数组,分别表示从0到包括第i个数字的最大值和最小值。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: