首页 > 其他分享 >152. 乘积最大子数组

152. 乘积最大子数组

时间:2024-09-18 23:12:41浏览次数:11  
标签:152 乘积 premin max num 数组 answer premax cur

题目链接 152. 乘积最大子数组
思路 最大子数组和-简单变体
题解链接 动态规划
关键点
时间复杂度 \(O(n)\)
空间复杂度 \(O(1)\)

代码实现:

class Solution:
    def maxProduct(self, nums: List[int]) -> int:
        answer = premax = premin = nums[0]
        for num in nums[1:]:
            cur_max = max(premax * num, premin * num, num)
            cur_min = min(premax * num, premin * num, num)
            answer = max(answer, cur_max)
            premax, premin = cur_max, cur_min
        return answer

标签:152,乘积,premin,max,num,数组,answer,premax,cur
From: https://www.cnblogs.com/WrRan/p/18419557

相关文章

  • 1191. K 次串联后最大子数组之和
    题目链接1191.K次串联后最大子数组之和思路前缀和/动态规划-最大子数组和-简单变体题解链接dp做法正确性的详细证明(图帮助理解)关键点分情况讨论(\(k\ge2\)):1.序列和小于02.序列和大于等于0时间复杂度\(O(n)\)空间复杂度\(O(1)\)代码实现:MOD=1......
  • 1749. 任意子数组和的绝对值的最大值
    题目链接1749.任意子数组和的绝对值的最大值思路前缀和/动态规划-最大子数组和-简单变体题解链接两种方法:动态规划/前缀和(附题单!Python/Java/C++/Go/JS)关键点无时间复杂度\(O(n)\)空间复杂度\(O(1)\)代码实现(动态规划):classSolution:defmax......
  • [模板题] - 53. 最大子数组和
    题目链接53.最大子数组和思路1.前缀和2.动态规划题解链接两种方法:前缀和/动态规划(Python/Java/C++/C/Go/JS/Rust)关键点无时间复杂度\(O(n)\)空间复杂度\(O(1)\)代码实现(前缀和):classSolution:defmaxSubArray(self,nums:List[int])->......
  • Day18 二叉树part08| LeetCode 669. 修剪二叉搜索树 , 108.将有序数组转换为二叉搜索树
    669.修剪二叉搜索树669.修剪二叉搜索树classSolution{publicTreeNodetrimBST(TreeNoderoot,intlow,inthigh){if(root==null)returnnull;//处理节点值<low的情况:当前节点及其左子树的所有节点都不在范围内,继续在其右子树上修......
  • 【JavaSE】--数组的定义与使用
    文章目录1.数组的基本概念1.1什么是数组1.2数组的创建及初始化1.2.1数组的创建1.2.2数组的初始化1.3数组的使用1.3.1数组中元素访问1.3.2遍历数组2.数组是引用类型2.1初识JVM的内存分布2.2基本类型变量与引用类型变量的区别2.3再谈引用变量2.4认识null3......
  • 2024-09-18:用go语言,给定一个从 0 开始的长度为 n 的正整数数组 nums 和一个二维操作数
    2024-09-18:用go语言,给定一个从0开始的长度为n的正整数数组nums和一个二维操作数组queries,每个操作由一个下标值indexi和一个数值ki组成。开始时,数组中的所有元素都是未标记的。依次执行m次操作,每次操作的过程如下:1.如果下标indexi对应的元素还未标记,则标记这个元素......
  • C++中一般指针,指针数组,数组指针
    凤凰台上凤凰游,凤去台空江自流。吴宫花草埋幽径,晋代衣冠成古丘。三山半落青天外,二水中分白鹭洲。总为浮云能蔽日,长安不见使人愁。                            ——《登金陵凤凰台》【唐】李白 今天是中秋节,小......
  • 【每日一题】LeetCode 2332.坐上公交的最晚时间(数组、双指针、二分查找、排序)
    【每日一题】LeetCode2332.坐上公交的最晚时间(数组、双指针、二分查找、排序)题目描述给你一个下标从0开始长度为n的整数数组buses,其中buses[i]表示第i辆公交车的出发时间。同时给你一个下标从0开始长度为m的整数数组passengers,其中passengers[j]表示第......
  • 二阶数组赋值给一阶数组
    要求 请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。例如,字符串数组中的M个字符串为:AAAABBBBBBBCC则合并后的字符串的内容应是:AAAABBBBBBBCC提示:strcat(a,b)的功能是将字符串b复制到字符串a的串尾上,成......
  • 26.删除有序数组中的重复项 Golang实现
    题目描述:给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为k,你需要做以下事情确保你的题解可以被通过:更改......