美文网首页
LintCode乘积最大子序列

LintCode乘积最大子序列

作者: Arnold134777 | 来源:发表于2016-03-27 22:13 被阅读150次

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

样例

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

public class Solution {
    /**
     * @param nums: an array of integers
     * @return: an integer
     */
    public int maxProduct(int[] nums) {
        if(null == nums || nums.length <= 0)
        {
            return 0;
        }
        
        int max = nums[0];
        int min = nums[0];
        int mostMax = max;
        
        for(int i = 1;i < nums.length;i++)
        {
            int tempMax = max;
            max = Math.max(Math.max(nums[i], tempMax * nums[i]),min * nums[i]);
            min = Math.min(Math.min(nums[i], tempMax * nums[i]),min * nums[i]);

            if(max > mostMax)
            {
                mostMax = max;
            }
        }
        return mostMax;
    }
}

相关文章

  • LintCode乘积最大子序列

    找出一个序列中乘积最大的连续子序列(至少包含一个数)。 样例 比如, 序列 [2,3,-2,4] 中乘积最大的子序...

  • LeetCode 152. 乘积最大子序列(Maximum Pr

    152. 乘积最大子序列 乘积最大子序列给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至...

  • 乘积最大子序列

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

  • 乘积最大子序列

    题目描述 解题思路 动态规划,从0-i的子数组的最大乘积为max,最小乘积为min,则0-i+1的最大乘积为 i+...

  • 乘积最大子序列

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

  • 乘积最大子序列

    题目: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输...

  • 乘积最大子序列

    给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输入: [...

  • 算法问题清单

    最大子序列和最长公共子序列最长公共子串大整数相乘/除/加数组最大乘积

  • 动态规划

    求最大子数组,最大子乘积

  • 每周 ARTS 第 16 期

    1. Algorithm 152. 乘积最大子序列(中等) 描述: 给定一个整数数组 nums ,找出一个序列中乘...

网友评论

      本文标题:LintCode乘积最大子序列

      本文链接:https://www.haomeiwen.com/subject/viljlttx.html