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

示例 1:

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

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

思路:对于必须以第i个数结尾的答案:

如何让乘积最大?

如果是负数,则和之前的乘积最小值相乘(也可能是第i个数本身)

如果是正数,应该和之前的乘积最大值相乘(或者是第i个数本身)

如何让乘积最小?

如果是负数,则和之前的乘积最大值相乘(也可能是第i个数本身)

如果是正数,应该和之前的乘积最小值相乘(或者是第i个数本身)

class Solution {public int maxProduct(int[] nums) {int max = Integer.MIN_VALUE, imax = 1, imin = 1;int len=nums.length;for(int i=0; i<len; ++i){if(nums[i] < 0){ int tmp = imax;imax = imin;imin = tmp;}imax = Math.max(imax*nums[i], nums[i]);imin = Math.min(imin*nums[i], nums[i]);max = Math.max(max, imax);}return max;}
}

leetcode 152 乘积最大子序列相关推荐

  1. Java实现 LeetCode 152 乘积最大子序列

    152. 乘积最大子序列 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] ...

  2. LeetCode 152. 乘积最大子序列(DP)

    文章目录 1. 题目信息 2. 解题 1. 题目信息 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1:输入: [2,3,-2,4] 输出: 6 解 ...

  3. Leetcode 152. 乘积最大子序列 解题思路及C++实现

    解题思路: 求乘积最大的子序列,不同于和最大的子序列,两个负数相乘是会得到正数的,所以在遍历数组nums时,需要存储最大和最小的子序列乘积.然后每遍历一个元素,更新一次. class Solution ...

  4. LeetCode 152. 乘积最大子序列(动态规划)

    题目描述 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6. ...

  5. leetcode - 53. 最大子序和 152. 乘积最大子序列 - 两个算法之间的联系和区别

    这两道算法题的解题思路是差不多的,但是从整体上分析,乘积最大子序列之和是最大子序和的进阶.先来看看两道算法题的简单描述. 53.最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组 ...

  6. leetcode 算法-乘积最大子序列-152

    leetcode 算法-乘积最大子序列 leetcode 传送门 题目 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2, ...

  7. Leetcode 152.乘机最大子序列

    乘积最大子序列 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 ...

  8. 152. 乘积最大子序列

    链接:https://leetcode-cn.com/problems/maximum-product-subarray/ 题解:https://leetcode-cn.com/problems/ma ...

  9. 【Leetocde | 24 】152. 乘积最大子序列

    这道题最直接的方法就是用DP来做,而且要用两个dp数组,其中f[i]表示子数组[0, i]范围内并且一定包含nums[i]数字的最大子数组乘积,g[i]表示子数组[0, i]范围内并且一定包含nums ...

最新文章

  1. 一些关于iText和iTextSharp的旧闻(some old news about iText and iTextSharp)
  2. 用javascript实现自我执行功能的目的是什么?
  3. fibonacci数列前20项_面试题精选:神奇的斐波那契数列
  4. SpringBoot是什么?可以做什么?
  5. 梅原对justin wang 真人版
  6. 德云斗笑社何九华为什么没参加_狗狗的身体卡在了门上,女主人低头一看忍不住笑了:这是膨胀了...
  7. Android学习笔记-ListView
  8. android7.1以太网动态ip,android7.1编译路上的那些坑!(部分转自网络整理)
  9. 7.18自学c++笔记
  10. C# asp.net常见编译|运行错误
  11. ScaleAnimation缩放动画Demo
  12. RMAN深入解析之--内存中的RMAN
  13. 如何用matlab计算不确定度,Matlab计算“间接测量物理量的不确定度”
  14. iPhone6 6p 7 7p屏幕适配,切图准则
  15. scrapy_AttributeError: 'generator' object has no attribute 'meta'''_'generator' 'dont_filter'
  16. 书写台灯哪种比较适合儿童?盘点护眼的儿童读写台灯推荐
  17. 局域网IP地址查看软件V2.0使用教程 Python办公自动化
  18. LOG_PATH_IS_UNDEFINED 解决
  19. 开源协同办公平台部署教程:O2OA PAAS平台部署
  20. 小巧灵活的奇瑞小蚂蚁带你出行

热门文章

  1. 现实地形导入UE4全流程
  2. Linux下boost库的安装
  3. MULTI BIN的wince 5.0,smdk2440下的实现
  4. android远程linux命令,测试可用的Android远程语音识别实例
  5. python多级字典嵌套_使用pythonscsv DictReader创建多级嵌套字典
  6. html日期只显示7天,vue+elementui 只能选7天内的日期
  7. 【转】VS编译时自动引用Debug|Release版本的dll
  8. 【转】刨根究底正则表达式(2):文本查找方式的演化历史
  9. 【转】WOPI host消息体结构
  10. Move_base理解