解题报告:乘积最大子序列

原创 2015年07月08日 11:19:23

http://www.lintcode.com/zh-cn/problem/maximum-product-subarray/

找出一个序列中乘积最大的连续子序列(至少包含一个数)。

您在真实的面试中是否遇到过这个题?
样例

比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6

标签 Expand

相关题目 Expand 

其实就是3中情况 整数 和负数 和0相乘

所以0起到隔断的作用

负数和整数相乘会更小,所以要找最小数

整数和整数相乘会更大,所以要找最大数

class Solution {
public:
    /**
     * @param nums: a vector of integers
     * @return: an integer
     */
    int maxProduct(vector<int>& nums) {
        // write your code here
   if (nums.size() <= 0)return 0;
		int minx = nums[0];
		int maxx = nums[0];
		int mint = 1;
		int maxt = 1;
		int maxv=nums[0];
		for (int i = 1; i<nums.size(); i++){
			if (nums[i] == 0){
				minx = 1;
				maxx = 1;
			}
			else{
				mint =minx;
				maxt =maxx;
				minx = min(min(mint*nums[i], nums[i]), maxt*nums[i]);
				maxx = max(max(mint*nums[i], nums[i]), maxt*nums[i]);
				maxv = max(maxv, maxx);
			}
		}
		return maxv;
    }
};

 

LintCode-乘积最大子序列

找出一个序列中乘积最大的连续子序列(至少包含一个数)。 样例 比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6。 分析:访问到每个点的时候,以该点为子序...

LintCode -- 乘积最大子序列

LintCode -- maximum-product-subarray(乘积最大子序列) 原题链接:http://www.lintcode.com/zh-cn/problem/maximu...
  • chan15
  • chan15
  • 2015年09月30日 19:46
  • 358

动态规划——乘积最大子序列

题目链接:http://www.lintcode.com/zh-cn/problem/maximum-product-subarray/ 参考资料:http://blog.csdn.net/wzy_...

lintcode刷题——乘积最大子序列

原题如下: 乘积最大子序列   描述 笔记  数据  评测 找出一个序列中乘积最大的连续子序列(至少包含一个数)。 您在真实的面试中...
  • yige321
  • yige321
  • 2017年08月22日 20:18
  • 57

Java实现-乘积最大子序列

找出一个序列中乘积最大的连续子序列(至少包含一个数)。 您在真实的面试中是否遇到过这个题?  Yes 样例 比如, 序列 [2,3,-2,4] 中乘积最大的子序...

lintCode【91】乘积最大子序列

描述: 找出一个序列中乘积最大的连续子序列(至少包含一个数)。 样例 : 比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6。 思路:因为涉及到正负...

【最大子序列和】解题报告

输入一个长度为n的整数序列(A1,A2,……,An),从中找出一段长度不超 过m 的连续的子序列,使得这个序列的和最大。 例如:序列 1,-3,5, 1,-2,3 当M=2 或3 时,S=5+...

杭州电子科技大学Online Judge 之 “最大连续子序列(ID1231)”解题报告

本题是动态规划算法的典型应用。使用变量sum累计当前连续子序列之和,只要sum>=0,就不停累计下去,并把最大连续子序列之和记录到maxSum中。如果sum小于0了,则将sum归零,重新开始。 题目要...

LintCode:乘积最大子序列

LintCode:乘积最大子序列Pythonclass Solution: # @param nums: an integer[] # @return: an integer ...

乘积最大子序列

题目描述:找出一个序列中乘积最大的连续子序列(至少包含一个数)。 样例:比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6。 动态规划问题,用一个数组r...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解题报告:乘积最大子序列
举报原因:
原因补充:

(最多只允许输入30个字)