Lintcode 乘积最大子序列
来源:互联网 发布:windows音量控制程序 编辑:程序博客网 时间:2024/05/20 01:13
找出一个序列中乘积最大的连续子序列(至少包含一个数)。
样例
比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6。
分析:访问到每个点的时候,以该点为子序列的末尾的乘积,要么是该点本身,要么是该点乘以以前一点为末尾的序列,注意乘积负负得正,故需要记录前面的最大最小值。
牛人代码:
class Solution { public: /** * @param nums: a vector of integers * @return: an integer */ int maxProduct(vector<int>& nums) { // write your code here int posMax = nums[0]; int negMax = nums[0]; int ret = nums[0]; for(int i=1;i<nums.size();i++) { int tempPosMax = posMax; int tempNegMax = negMax; posMax = max(nums[i],max(nums[i]*tempPosMax,nums[i]*tempNegMax)); negMax = min(nums[i],min(nums[i]*tempPosMax,nums[i]*tempNegMax)); ret = max(ret,posMax); } return ret; } };
阅读全文
1 0
- LintCode-乘积最大子序列
- LintCode -- 乘积最大子序列
- lintcode- 乘积最大子序列
- LintCode:乘积最大子序列
- 乘积最大子序列,lintcode
- lintcode--乘积最大子序列
- Lintcode 乘积最大子序列
- 乘积最大子序列-LintCode
- lintcode--乘积最大子序列
- lintCode【91】乘积最大子序列
- LintCode:M-乘积最大子序列
- [Lintcode]Maximum Product Subarray乘积最大子序列
- lintcode刷题——乘积最大子序列
- 最大乘积子序列
- 最大子序列乘积
- 乘积最大子序列
- 乘积最大子序列
- 乘积最大子序列
- Effictive Java
- ACM动态规划总结
- Linux线上查询及帮助命令
- 高数Umaru系列(3)——喵星人
- C++中给cin提速
- Lintcode 乘积最大子序列
- Nginx初始
- 什么是ajax?,ajax能干什么?
- Java运算符的优先级
- 计算机网络概览
- 搭建自动化测试平台(selenium+testng+maven+svn+Jenkins)
- eclipse下创建ssm+MySQL+maven多模块项目
- C控制语句之循环语句(二)
- 双系统