152. Maximum Product Subarray

Source code notebook Author Update time

Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product.

Example 1:

Input: [2,3,-2,4]
Output: 6
Explanation:  [2,3] has the largest product 6.

Example 2:

Input: [-2,0,-1]
Output: 0
Explanation:  The result cannot be 2, because [-2,-1] is not a subarray.
# @lc code=start
using LeetCode

function max_product(nums::Vector{Int})
    maxF = minF = res = nums[1]
    for num in @view nums[2:end]
        maxF, minF = max(maxF * num, minF * num, num), min(minF * num, maxF * num, num)
        res = max(res, maxF)
    end
    res
end
# @lc code=end
max_product (generic function with 1 method)

This page was generated using DemoCards.jl and Literate.jl.