zoukankan      html  css  js  c++  java
  • [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;
    }
    };
  • 相关阅读:
    闭包
    线程与进程
    异常处理
    socket编程
    面向对象编程
    模块
    正则表达式
    递归、二分查找、冒泡算法
    装饰器
    迭代器与生成器
  • 原文地址:https://www.cnblogs.com/vincently/p/4803327.html
Copyright © 2011-2022 走看看