46.Maximum Product Subarray(最大乘积子数组)
Level:
Medium
题目描述:
Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product.
Example 1:
Input: [2,3,-2,4]
Output: 6
Explanation: [2,3] has the largest product 6.
Example 2:
Input: [-2,0,-1]
Output: 0
Explanation: The result cannot be 2, because [-2,-1] is not a subarray.
思路分析:
因为是乘积的最大值,可能是若干个正数相乘得到,也可能是若干个负数相乘得到;因此,必须保留前一阶段的最大值和最小值k+1在内结尾的最小乘积序列为:
min(k+1) = min(min(k) * a[k+1], max(k) * a[k+1], a[k+1])
代码:
public class Solution{
public int maxProduct(int []nums){
int dp=nums[0];
int maxk=nums[0]; //第K阶段的最大值
int mink=nums[0]; //第K阶段的最小值
int maxcur=maxk;
int mincur=mink;
for(int i=1;i<nums.length;i++){
maxk=Math.max(Math.max(maxcur*nums[i],mincur*nums[i]),nums[i]);
mink=Math.min(Math.min(maxcur*nums[i],mincur*nums[i]),nums[i]);
maxcur=maxk;
mincur=mink;
dp=Math.max(dp,maxcur);
}
return dp;
}
}
46.Maximum Product Subarray(最大乘积子数组)的更多相关文章
- 152. Maximum Product Subarray最大乘积子数组/是否连续
[抄题]: Given an integer array nums, find the contiguous subarray within an array (containing at least ...
- 【LeetCode】Maximum Product Subarray 求连续子数组使其乘积最大
Add Date 2014-09-23 Maximum Product Subarray Find the contiguous subarray within an array (containin ...
- [leetcode]152. Maximum Product Subarray最大乘积子数组
Given an integer array nums, find the contiguous subarray within an array (containing at least one n ...
- [LC]643题 Maximum Average Subarray I(子数组最大平均数 I)
①英文题目 Given an array consisting of n integers, find the contiguous subarray of given length k that h ...
- [LeetCode] Subarray Product Less Than K 子数组乘积小于K
Your are given an array of positive integers nums. Count and print the number of (contiguous) subarr ...
- LeetCode:152_Maximum Product Subarray | 最大乘积连续子数组 | Medium
题目:Maximum Product Subarray Find the contiguous subarray within an array (containing at least one nu ...
- 求连续最大子序列积 - leetcode. 152 Maximum Product Subarray
题目链接:Maximum Product Subarray solutions同步在github 题目很简单,给一个数组,求一个连续的子数组,使得数组元素之积最大.这是求连续最大子序列和的加强版,我们 ...
- LeetCode Maximum Product Subarray(枚举)
LeetCode Maximum Product Subarray Description Given a sequence of integers S = {S1, S2, . . . , Sn}, ...
- LeetCode_Maximum Subarray | Maximum Product Subarray
Maximum Subarray 一.题目描写叙述 就是求一个数组的最大子序列 二.思路及代码 首先我们想到暴力破解 public class Solution { public int maxSub ...
随机推荐
- 计算机图形学之扫描转换直线-DDA,Bresenham,中点画线算法
1.DDA算法 DDA(Digital Differential Analyer):数字微分法 DDA算法思想:增量思想 公式推导: 效率:采用了浮点加法和浮点显示是需要取整 代码: void lin ...
- easyui更改messager的OkCancel按钮为(中文)确定取消
jquery-easyui默认情况下,消息框的按钮文字是英文的OK Cancel,但可以通过提供的方法进行修改,如: $.extend($.messager.defaults,{ ok:" ...
- builtin_shaders-5.3.4f1学习-Sprites-Default
Shader "Sprites/Default" { Properties { [PerRendererData] _MainTex ("Sprite Texture&q ...
- editplus 3.4注册码,亲测有效
注册码: crsky 7879E-5BF58-7DR23-DAOB2-7DR30
- C#递归得到特定文件夹下问件
List<String> listFile = new List<String>(); public void director(string path) { //绑定到指定的 ...
- DB2 - 编目的解释
编目(Catalog),是在本地或远程建立客户端到服务器的数据库连接的过程.其目的在于获取编目信息,即生成用来访问数据库的目录.系统数据库目录包含一个列表和指针,通过目录可以使 DB2 能够找到已知的 ...
- 集合框架Collection<E>接口
- python之文件路径截取 & endswith()
文件路径截取: >>> import os >>> path = '/etc/singfor/passwd/sunny/test.log' >>> ...
- properties 文件注意事项
不要使用""双引号包裹内容 db.validationQuery="select 1"比如上面这种是错误的,下面的是正确的写法 db.validationQue ...
- AtCoder Beginner Contest 053 ABCD题
A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...