乘积最大子数组
题目: 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2:输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。解题思路:因为有负数所以会有负负得正的情况,            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-06-15 14:10:01
                            
                                114阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            动态规划数组没说只能有一个,同时要擅于看待正负数之间的符号关系,有时候负数也可能会产生极大值。            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-03-29 14:45:27
                            
                                10000+阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            问题: # 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),# 并返回该子数组所对应的乘积。 # # # # 示例 1: # # 输入: [2,3,-2,4]# 输出: 6# 解释: 子数组 [2,3] 有最大乘积 6。 方法:动态规划,构建两个dp, ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-10-17 20:30:00
                            
                                192阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            dp[i]:用到了nums[i]连续子数组的最大和用到了nums[i]连续子数组的最大和dp[i],要么            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-04-01 08:21:44
                            
                                89阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Title给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。Solve动态规划如果当前位置是一个负数的话,那么我们希望在它前面一个位置的某一段的积也是个负数,并且尽可能小,负负得正。如果当前位置是一个正数的话,那么            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-10 10:06:44
                            
                                101阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            这是我参与更文挑战的第15天,活动详情查看: 更文挑战 $\color{red}{如果你对动态规划不熟悉,望转到该篇~}$ 肝了好多天-动态规划十连-超细腻解析|刷题打卡 $\color{green}            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-06 10:04:12
                            
                                131阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            最大子数组和的状态转移方程是dp[i]=max(dp[i-1]+nums[i],nums[i]) 其中dp[i]表示以nums[i]结尾的最大子数组的和。所以以nums[i]结尾的最大子数组和无非就是要么加入前边的要么单独自己。 但是乘积最大子数组不满足这样的转移方程 dp[i]不一定是由dp[i- ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-20 15:48:00
                            
                                157阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            题目: 其为动态规划,与上一题的线性求和的方法十分的类似,主要是用dp数组去保存当前最大值,最大值可以为前一个dp[i-1]去运算得到,或者自己重新开始,所以要进行比较,但因为这是乘法,要考虑到正负数的问题 负数越小,那么该数字的绝对值是越大的,所以,如果本身是负数的话,就要求找到其最小值与之相乘, ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-26 23:33:00
                            
                                74阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            题目:给你一个整数数组nums,请你找出数组中乘积最大的连续子数组(该            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2020-06-15 23:30:09
                            
                                90阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            package leetcode; public class demo_152 { public int maxProduct(int[] nums) { int[] maxdp=new int[nums.length]; int[] mindp=new int[nums.length]; maxd ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-24 15:26:00
                            
                                72阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            一道很有纪念意义的动态规划题目。动态规划的核心在于找到最优子结构,自己写的动态规划中,使用了近乎暴力的计算方法,用一个二维数组去存储乘积。固然可以,但是和动态规划的内核是不符的。所以需要在遍历的过程中维护当前节点之前的最大乘积和最小乘积,同时维护两个是因为当前节点值可能为负数,所以乘上最小乘积有可能 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-25 19:41:00
                            
                                120阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            Title给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。
Solve动态规划如果当前位置是一个负数的话            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-03-23 17:26:01
                            
                                77阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 示例 1: 输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2: 输入: [-2,0,-1]输出: 0解释: 结果不能为 2。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-03 15:00:01
                            
                                85阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            【题目描述】给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个 32-位 整数。子数组 是数组的连续子序列。https://leetcode.cn/problems/maximum-product-subarray/?favorite=2c            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-01-04 21:26:33
                            
                                102阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            【代码】Leetcode152. 乘积最大子数组。            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-09-10 00:20:54
                            
                                380阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 示例 1: 输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2: 输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为  ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-04-11 23:28:00
                            
                                42阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            152. 乘积最大子数组难度中等963给你一个整数数组 nums ,请你找出数组中乘积            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-10-28 12:20:09
                            
                                52阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            #define max(a,b) ((a)>(b))?(a):(b) #define min(a,b) ((a)<(b))?(a):(b) int maxProduct(int* nums, int numsSize){ int i, maxVal=nums[0], res=nums[0], min            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-12-23 14:35:00
                            
                                79阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            思路
标签:动态规划
遍历数组时计算当前最大值,不断更新
令imax为当前最大值,则当前最大值为 imax = max(imax * nums[i], nums[i])
由于存在负数,那么会导致最大的变最小的,最小的变最大的。因此还需要维护当前最小值imin,imin = min(imin * nums[i], nums[i])
当负数出现时则imax与            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-01-21 07:32:59
                            
                                79阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            再深入的按照逻辑进行分析就能解决问题了!            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-09-17 00:27:06
                            
                                44阅读
                            
                                                                             
                 
                
                                
                    