152. Maximum Product Subarray
来源:互联网 发布:腾讯php是不是用的不多 编辑:程序博客网 时间:2024/04/24 04:47
最大连续子序列乘积
参考这个题解:
求最大连续子序列乘积与最大连续子序列和问题有所不同,因为其中有正有负还有可能有0。
假设数组为a[],直接利用动归来求解,考虑到可能存在负数的情况,我们用Max[i]来表示以a[i]结尾的最大连续子序列的乘积值,用Min[i]表示以a[i]结尾的最小的连续子序列的乘积值,那么状态转移方程为:
Max[i]=max{a[i], Max[i-1]*a[i], Min[i-1]*a[i]};
Min[i]=min{a[i], Max[i-1]*a[i], Min[i-1]*a[i]};
代码如下:
public class Solution {
public int max3(int a, int b, int c){
return Math.max(Math.max(a, b), c);
}
public int min3(int a, int b, int c){ return Math.min(Math.min(a, b), c);}public int maxProduct(int[] nums) { int max[] = new int[nums.length]; int min[] = new int[nums.length]; max[0] = nums[0]; min[0] = nums[0]; int maxProduct = max[0]; for (int i = 1; i < nums.length; i ++){ max[i] = max3(nums[i], max[i-1]*nums[i], min[i-1]*nums[i]); maxProduct = Math.max(max[i], maxProduct); min[i] = min3(nums[i], max[i-1]*nums[i], min[i-1]*nums[i]); } return maxProduct;}
}
0 0
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- CSDN Markdown简明教程4-UML图
- 防治运营商HTTP劫持的终极技术手段
- ARM异常中断返回的几种情况
- PlatinumKit编译及注意事项
- vc++6.0查看程序中内存
- 152. Maximum Product Subarray
- Java控制台输入方法
- Maltrail 使用教程
- UVA - 11613 Acme Corporation(任意流最小费用)
- 对于ISP的http会话劫持,各位看看这个文章,更换DNS纯属蛋疼
- ubuntu小白入门配置之二——Ubuntu 14.04安装JDK1.8.0_25与配置环境变量
- Android系统源码阅读(13):Input消息的分发过程
- for(var i in hArr)与for(var i=0;i<hArr.length;i++)的区别
- Http-----Http代理原理