Leetcode 152. 乘积最大子序列 解题思路及C++实现
解题思路:
求乘积最大的子序列,不同于和最大的子序列,两个负数相乘是会得到正数的,所以在遍历数组nums时,需要存储最大和最小的子序列乘积。然后每遍历一个元素,更新一次。
class Solution {
public:int maxProduct(vector<int>& nums) {if(nums.empty()) return 0;int n = nums.size();int imax = nums[0]; //存储当前最大值int imin = nums[0]; //存储当前最小值int res = nums[0]; //存储结果for(int i = 1; i < n; i++){int tmp = imax; //要先把imax缓存起来,不然就会被下面的赋值语句更新掉imax = max(nums[i], max(nums[i]*imax, nums[i]*imin));imin = min(nums[i], min(nums[i]*tmp, nums[i]*imin));res = max(res, imax);}return res;}
};
Leetcode 152. 乘积最大子序列 解题思路及C++实现相关推荐
- Java实现 LeetCode 152 乘积最大子序列
152. 乘积最大子序列 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] ...
- LeetCode 152. 乘积最大子序列(DP)
文章目录 1. 题目信息 2. 解题 1. 题目信息 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1:输入: [2,3,-2,4] 输出: 6 解 ...
- leetcode 152 乘积最大子序列
给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6. 示例 2 ...
- LeetCode 152. 乘积最大子序列(动态规划)
题目描述 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6. ...
- leetcode - 53. 最大子序和 152. 乘积最大子序列 - 两个算法之间的联系和区别
这两道算法题的解题思路是差不多的,但是从整体上分析,乘积最大子序列之和是最大子序和的进阶.先来看看两道算法题的简单描述. 53.最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组 ...
- leetcode 算法-乘积最大子序列-152
leetcode 算法-乘积最大子序列 leetcode 传送门 题目 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2, ...
- Leetcode 392. 判断子序列 解题思路及C++实现
解题思路: 使用贪心算法,每在字符串t中找到s的相应顺序的一个字符,就当做找到了该字符,然后接着去找后面的字符. 程序大循环:在字符串 t 中去寻找字符串 s 的第一个字符. 每当找到 s 的起始字符 ...
- Leetcode 152.乘机最大子序列
乘积最大子序列 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 ...
- Leetcode 313. 超级丑数 解题思路及C++实现
解题思路: 与Leetcode 264. 丑数 II的解题思路一样,均使用最小堆来存储丑数,第i次更新最小堆时,得到第i大的丑数. 可结合Leetcode 264. 丑数 II的解题思路理解:http ...
最新文章
- SpringBoot注入数据的方式
- K近邻算法(KNN)原理小结
- 从五个方面做IT职业规划
- java String 转boolean
- QT的QMutex类的使用
- 在 IE8 下 EXT的显示问题
- 酒店前厅计算机的作用,浅谈智能化对酒店前厅员工的服务质量和影响
- SpringAOP之代理设计模式
- 选择安防交换机时需要避免哪些误区呢?
- Android极光推送,Manifest merger failed with multiple errors, see logs
- JavaScript | 用户定义函数的一些示例
- terminated 线程_深入并发,线程相关知识全解析
- Redis和MySQL的结合方案
- JavaScript 闭包理解
- 玩游戏提示计算机内存不足,Win10玩吃鸡游戏提示“虚拟内存不足”怎么办?
- lopa分析_AQ/T 3054-2015保护层分析(LOPA)方法应用导则
- 泰坦尼克号 机器学习_机器学习项目泰坦尼克号问题陈述
- c# 调用restful json_SSM实现RESTFul风格的CURD操作
- Vue实现图形化积木式编程(一)
- android+6.0+通讯录,Android6.0的通讯录获取
热门文章
- 声音对比处理_厨房垃圾处理器 | 厨余垃圾分类的正确打开姿势
- Windows远程桌面管理--功能强大的远程批量管理工具
- Win服务器2008和2012哪个更好?
- data.push({name:'a',value:'a'});
- flask 渲染jinja2模版和传参
- 解决Ubuntu Adobe Reader 菜单栏空白
- AndroidVerifyBoot
- android 六边形简书,深入理解六边形架构
- JVM — 类加载机制
- 10分钟理解CSS3 FlexBox