首页 > 试题广场 >

乘积最大的连续子序列

[编程题]乘积最大的连续子序列
  • 热度指数:33 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

给定一个整数数组 ,找出一个序列中乘积最大的连续子序列的乘积(该序列至少包含一个数)。

示例1

输入

[2,3,-4,2]

输出

6
#

# @param nums int整型一维数组 
# @return int整型
#
class Solution:
    def maxProduct(self , nums ):
        # write code here
        if not nums: return 
        res = nums[0]
        pre_max = nums[0]
        pre_min = nums[0]
        for num in nums[1:]:
            cur_max = max(pre_max * num, pre_min * num, num)
            cur_min = min(pre_max * num, pre_min * num, num)
            res = max(res, cur_max)
            pre_max = cur_max
            pre_min = cur_min
        return res

发表于 2022-06-29 13:55:58 回复(0)