• 152. Maximum Product Subarray


    package LeetCode_152
    
    /**
     * 152. Maximum Product Subarray
     * https://leetcode.com/problems/maximum-product-subarray/description/
     *
     * 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.
     * */
    class Solution {
        fun maxProduct(nums: IntArray): Int {
            if (nums == null || nums.size == 0) {
                return 0
            }
            var res = nums[0]
            var minValue = nums[0]
            var maxValue = nums[0]
            for (i in 1 until nums.size) {
                val temp1 = minValue * nums[i]
                val temp2 = maxValue * nums[i]
                minValue = Math.min(nums[i], Math.min(temp1, temp2))
                maxValue = Math.max(nums[i], Math.max(temp1, temp2))
                res = Math.max(res, maxValue)
            }
            return res
        }
    }
  • 相关阅读:
    POJ 2002 Squares
    POJ 1840 Eqs
    POJ 1759 Garland
    UVA 572 Oil Deposits
    POJ 3278 Catch That Cow
    POJ 2488 A Knight's Journey
    UVA 699 The Falling Leaves
    [Poi1999] 原始生物
    [bzoj3033] 太鼓达人
    [bzoj1123] BLO
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/12774594.html
Copyright © 2020-2023  润新知