zoukankan      html  css  js  c++  java
  • LeetCode--152--乘积最大子序列(python)

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

    示例 1:

    输入: [2,3,-2,4]
    输出: 6
    解释: 子数组 [2,3] 有最大乘积 6。
    示例 2:

    输入: [-2,0,-1]
    输出: 0
    解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。

    令imax,imin为当前索引的最大最小值

    当遇到负数的时候,负数乘最大值就变成了最小值,所以应该在比较之前把imax和imin调换

     1 class Solution:
     2     def maxProduct(self, nums: List[int]) -> int:
     3         Max = nums[0] 
     4         imax,imin=1,1
     5         for i in nums:
     6             if i < 0:
     7                 imax,imin=imin,imax
     8             imax= max(imax*i,i)
     9             imin=min(imin*i,i)
    10             Max = max(imax,Max)
    11         return Max
  • 相关阅读:
    vue组件的通信
    vue基础
    vue项目总结
    路由(4)传参
    路由(3)
    第一次作业
    JAVA-2.0-homework
    JAVA-2.0-上机
    JAVA-1.9-homework
    JAVA-1.9-上机
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/11664849.html
Copyright © 2011-2022 走看看