题目:

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

示例 1:

输入: [2,3,-2,4]
输出: 6
解释: 子数组 [2,3] 有最大乘积 6。

示例 2:

输入: [-2,0,-1]
输出: 0
解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。

解题答案:

max:当前乘积最大值

zheng:当前连续的乘积和(大于等于0)

fu:当前连续的乘积和(大于等于0)

分别判断nums[i]为正数,负数以及0的情况下:max,zheng,fu变量的变化

class Solution {
public int maxProduct(int[] nums) {
if(nums.length < 1)
return 0;
if(nums.length == 1)
return nums[0];
int zheng = 0; //当前连续的最大值 正数
int fu = 0; //当前连续的最小值 负数
int max = nums[0];
if(nums[0] > 0)
zheng = nums[0];
if(nums[0] < 0)
fu = nums[0]; for(int i = 1; i < nums.length; i++)
{
if(nums[i] > 0)
{
if(zheng > 0)
{
zheng = zheng * nums[i];
}
else
zheng = nums[i];
if(zheng > max)
max = zheng;
if(fu < 0)
{
fu = fu * nums[i];
}
}
else if(nums[i] == 0)
{
zheng = 0;
fu = 0;
if(0 > max)
max = 0;
}
else{
//nums[i]为负数 则fu zheng要进行相应的变化
int temp = zheng;
if(fu < 0)
{
zheng = fu * nums[i];
if(zheng > max)
max = zheng;
}
else
{
zheng = 0;
}
if(temp > 0)
{
fu = temp * nums[i];
}
else{
fu = nums[i];
} }
}
return max;
}
}

leetcode 152. 乘积最大子序列 java的更多相关文章

  1. Java实现 LeetCode 152 乘积最大子序列

    152. 乘积最大子序列 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] ...

  2. [LeetCode]152. 乘积最大子序列(DP)

    题目 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6. 示 ...

  3. LeetCode | 152. 乘积最大子序列

    原题(Medium): 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 思路: 遍历数组时且逐元素相乘时,如果遇到了0,在求乘积最大值的情况下,0左边的元素 ...

  4. LeetCode 152. 乘积最大子序列(Maximum Product Subarray)

    题目描述 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6. ...

  5. Leetcode 152.乘机最大子序列

    乘积最大子序列 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 ...

  6. Leetcode题目152.乘积最大子序列(动态规划-中等)

    题目描述: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6 ...

  7. leetcode 152. Maximum Product Subarray --------- java

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  8. 152 Maximum Product Subarray 乘积最大子序列

    找出一个序列中乘积最大的连续子序列(该序列至少包含一个数).例如, 给定序列 [2,3,-2,4],其中乘积最大的子序列为 [2,3] 其乘积为 6.详见:https://leetcode.com/p ...

  9. 1. 线性DP 152. 乘积最大子数组

    152. 乘积最大子数组  https://leetcode-cn.com/problems/maximum-product-subarray/ func maxProduct(nums []int) ...

随机推荐

  1. 检测鼠标是否在UI上unity

    public static bool IsCursorOnUI(int inputID=-1){ EventSystem eventSystem = EventSystem.current; retu ...

  2. 学会谈判zz

    经常有人问我,为什么谈判到你手里就变得那么容易?你有什么诀窍?其实只要是谈判,涉及双方利益,就绝不会轻松.之所以能谈判成功,仔细想想秘诀无非是两个字:“双赢”.要想成功,就要双方都受益.如果你一开始就 ...

  3. 811. Subdomain Visit Count

    这题主要难在构建关联容器,方法很多,但是核心都是把原字符串一截一截减下来处理,先把前面用空格隔开的次数转化为整数,然后处理后面的多层子域. 方法一,查找标志字符,用标志字符把字符串分成几段 stati ...

  4. Neural Network Basics

    在学习NLP之前还是要打好基础,第二部分就是神经网络基础. 知识点总结: 1.神经网络概要: 2. 神经网络表示: 第0层为输入层(input layer).隐藏层(hidden layer).输出层 ...

  5. pt-query-digest详解慢查询日志

    一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdu ...

  6. linux 下安装安装mysql 5.6. 5.7

    linux版本:CentOS7 64位 5.7.20 安装请看 他人博客 我已经安装成功了 https://www.cnblogs.com/cz-xjw/p/8006904.html 5.6安装 前提 ...

  7. Arbiter

    from  2015-EDCAV-Problems encountered in various arbitration techniques used in NOC router-A survey ...

  8. Vue + Element UI 实现权限管理系统

    Vue + Element UI 实现权限管理系统 前端篇(一):搭建开发环境 https://www.cnblogs.com/xifengxiaoma/p/9533018.html

  9. 点击文字弹出一个DIV层窗口代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  10. 解决linux系统CentOS下调整home和根分区大小

    目标:将VolGroup-lv_home缩小到20G,并将剩余的空间添加给VolGroup-lv_root   1.首先查看磁盘使用情况 [root@localhost ~]# df -h 文件系统 ...