美文网首页
85.LeetCode.152. 乘积最大子序列

85.LeetCode.152. 乘积最大子序列

作者: 月牙眼的楼下小黑 | 来源:发表于2019-03-09 20:35 被阅读2次
  • 标签: 数组 动态规划
  • 难度: 中等

  • 题目描述
  • 我的解法

此题与LeetCode.53. 最大子序和 不同, 因为乘积值受到正负号的影响。 仍旧采用动态规划求解。 用 Max[i] 表示以 nums[i] 为结尾的最大子序列乘积值, Min[i] 表示以 nums[i] 为结尾的最小子序列乘积值。 不难推出递推公式为:

Max[i]=max(a[i], Max[i-1]*a[i], Min[i-1]*a[i])
Min[i]=min(a[i], Max[i-1]*a[i], Min[i-1]*a[i])

class Solution(object):
    def maxProduct(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        Ans = Min = Max = nums[0]
        for n in nums[1:]:
            temp = Max
            Max = max(Max * n, Min * n, n)
            Min = min(temp * n, Min * n, n)
            Ans = max(Max, Ans)
        return Ans
            
  • 其他解法

暂略。

相关文章

  • LeetCode 152. 乘积最大子序列(Maximum Pr

    152. 乘积最大子序列 乘积最大子序列给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至...

  • 85.LeetCode.152. 乘积最大子序列

    标签: 数组 动态规划 难度: 中等 题目描述 我的解法 此题与LeetCode.53. 最大子序和 不同, ...

  • 乘积最大子序列

    LintCode题目地址找出一个序列中乘积最大的连续子序列(至少包含一个数)。

  • 乘积最大子序列

    题目描述 解题思路 动态规划,从0-i的子数组的最大乘积为max,最小乘积为min,则0-i+1的最大乘积为 i+...

  • 乘积最大子序列

    给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 解释: 子...

  • 乘积最大子序列

    题目: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输...

  • 乘积最大子序列

    给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输入: [...

  • 算法问题清单

    最大子序列和最长公共子序列最长公共子串大整数相乘/除/加数组最大乘积

  • 动态规划

    求最大子数组,最大子乘积

  • 每周 ARTS 第 16 期

    1. Algorithm 152. 乘积最大子序列(中等) 描述: 给定一个整数数组 nums ,找出一个序列中乘...

网友评论

      本文标题:85.LeetCode.152. 乘积最大子序列

      本文链接:https://www.haomeiwen.com/subject/typepqtx.html