LintCode-乘积最大子序列
来源:互联网 发布:nginx 多个别名 编辑:程序博客网 时间:2024/05/18 22:52
找出一个序列中乘积最大的连续子序列(至少包含一个数)。
样例
比如, 序列 [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; }};
0 0
- LintCode-乘积最大子序列
- LintCode -- 乘积最大子序列
- lintcode- 乘积最大子序列
- LintCode:乘积最大子序列
- 乘积最大子序列,lintcode
- lintcode--乘积最大子序列
- Lintcode 乘积最大子序列
- 乘积最大子序列-LintCode
- lintcode--乘积最大子序列
- lintCode【91】乘积最大子序列
- LintCode:M-乘积最大子序列
- [Lintcode]Maximum Product Subarray乘积最大子序列
- lintcode刷题——乘积最大子序列
- 最大乘积子序列
- 最大子序列乘积
- 乘积最大子序列
- 乘积最大子序列
- 乘积最大子序列
- 一个基本的傅立叶变换例子
- Leetcode:Two Sum
- Android 添加数据到本地Excel表中
- Windows 驱动开发 - 基础2
- Java虚拟机解释执行和JIT的关系
- LintCode-乘积最大子序列
- 特征值和特征向量的实际意义
- MySQL实现学生选课系统的成绩统计
- 文章标题
- nginx+php5+mediawiki配置
- BZOJ 1977: [BeiJing2010组队]次小生成树 Tree
- QT Creator 中无法切换输入法
- Linux内核选配编译步骤
- OJ题——商品销售