• Leetcode练习(Python):数组类:第152题:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字)。


    题目:
    给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字)。
    思路:
    考虑数组中为负数的情况。
    程序:
    class Solution:
        def maxProduct(self, nums: List[int]) -> int:
            length = len(nums)
            if length <= 0:
                return 0
            if length == 1:
                return nums[0]
            result = nums[0]
            auxiliary_max = [0] * length
            auxiliary_min = [0] * length
            auxiliary_max[0] = nums[0]
            auxiliary_min[0] = nums[0]
            for index in range(1, length):
                if nums[index] >= 0:
                    auxiliary_max[index] = max(auxiliary_max[index - 1] * nums[index], nums[index])
                    auxiliary_min[index] = min(auxiliary_min[index - 1] * nums[index], nums[index])
                else:
                    auxiliary_max[index] = max(auxiliary_min[index - 1] * nums[index], nums[index])
                    auxiliary_min[index] = min(auxiliary_max[index - 1] * nums[index], nums[index])
                result = max(result, auxiliary_max[index])
            return result
  • 相关阅读:
    with admin option 和 with grant option 的区别 (转)
    压缩数据块
    建表时pctfree和pctused参数作用
    Oracle哪些错误会写进alert日志
    Oracle 差异、增量、零级备份
    模拟原生的promise
    react-loadable 实现组件按需加载
    react 中配置 http-proxy-middleware
    craco 配置 less.module
    ESLint: 'React' was used before it was defined.(no-use-before-define)
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12773548.html
Copyright © 2020-2023  润新知