华为题目152乘积最大子数组

关于这个题目我刚开始想用求最大求和的方法,也就是数组左右两个指针的移动的方式,就是以右边指针为导向把左边的指针一直往右边去移动,因为不会出现反转。这个就是乘积的会反转所以必须用新的方法。

复制代码
def maxProduct(self, nums):
    #首先要有判断是不是空
#这个要用if not nums,这个都可以判断,。因为如果if num is None无法判断[]这种情况
    if nums is None:
        return 0
    ans,da,xiao=nums[0],nums[0],nums[0]

    for i in range(1,len(nums)):
        num=nums[i]
        cun=da
#这里把da存cun了,因为后面xiao的时候要用到cun
        da=max(num,cun*num,xiao*num)
        xiao=min(num,cun*num,xiao*num)
        ans=max(ans,da)
    return ans
相关推荐
weixin_513449965 小时前
walk_these_ways项目学习记录第九篇(通过行为多样性 (MoB) 实现地形泛化)--学习算法
学习·算法·机器学习
fish_xk5 小时前
c++内存管理
开发语言·c++·算法
Tisfy5 小时前
LeetCode 3740.三个相等元素之间的最小距离 I:今日先暴力,“明日“再哈希
算法·leetcode·哈希算法·题解·模拟·遍历·暴力
独特的螺狮粉6 小时前
城市空气质量简易指数查询卡片:鸿蒙Flutter框架 实现的空气质量查询应用
开发语言·flutter·华为·架构·harmonyos
汀、人工智能6 小时前
[特殊字符] 第77课:最长递增子序列
数据结构·算法·数据库架构·图论·bfs·最长递增子序列
网域小星球6 小时前
C语言从0入门(十)|二维数组详解与矩阵实战
c语言·算法·矩阵·二维数组·数组遍历
澈2076 小时前
堆排序:高效构建大顶堆实战
数据结构·算法·排序算法
互联网散修6 小时前
零基础鸿蒙应用开发第三十二节:JSON核心基础与文件的读写
华为·json·harmonyos
我真不是小鱼6 小时前
cpp刷题打卡记录27——无重复字符的最长子串 & 找到字符串中所有字母的异位词
数据结构·c++·算法·leetcode
我的世界洛天依6 小时前
胡桃讲编程:华为鸿蒙系统能用 MT 管理器反编译吗?(安装包 + 系统根目录实战指南)
华为·harmonyos·机器翻译