LeetCode Maximum Product Subarray
来源:互联网 发布:网络依赖症定义 编辑:程序博客网 时间:2024/05/16 15:56
题意:给定一个int,求解字串的最大product
解法:dp咯
因为只是一个求解字串的product,只要考虑正负和零,当前的max[i]只和三个有关系,A[i],A[i]*max[i-1]以及A[i]*min[i-1],那么这样我们不妨同时维护两个dp数组,max和min,分别表示以A[i]结尾的字串中最大值和最小值。状态转移方程如下
max[i] = max( A[i], A[i]*max[i-1], A[i]*min[i-1] )
min[i] = min( A[i], A[i]*min[i-1], A[i]*max[i-1] )
public class Solution {public int maxProduct(int[] A) {int ret = A[0];int l = A.length;int max[] = new int[l], min[] = new int[l];int preMax, preMin;max[0] = min[0] = A[0];for (int i = 1; i < l; i++) {preMax = max[i - 1];preMin = min[i - 1];max[i] = Math.max(A[i], Math.max(A[i] * preMax, A[i] * preMin));min[i] = Math.min(A[i], Math.min(A[i] * preMax, A[i] * preMin));ret = Math.max(ret, max[i]);}return ret;}public static void main(String[] args) {Solution s = new Solution();System.out.println(s.maxProduct(new int[] { -2, 3, -4 }));}}
0 0
- Maximum Product Subarray 【LeetCode】
- [LeetCode] Maximum Product Subarray
- leetcode-Maximum Product Subarray
- Maximum Product Subarray -- LeetCode
- LeetCode-Maximum Product Subarray
- [LeetCode]Maximum Product Subarray
- [LeetCode]Maximum Product Subarray
- 【LeetCode】Maximum Product Subarray
- leetcode:Maximum Product Subarray
- leetcode: Maximum Product Subarray
- Leetcode: Maximum Product Subarray
- [LeetCode]Maximum Product Subarray
- Leetcode Maximum Product Subarray
- [Leetcode]Maximum Product Subarray
- Leetcode--Maximum Product Subarray
- Maximum Product Subarray [leetcode]
- LeetCode | Maximum Product Subarray
- LeetCode-Maximum Product Subarray
- UVA Number Sequence(规律)
- 写一点想法、
- 转载:虚拟地址转换成为物理地址
- TFT模块闪屏(Flicker)现象分析
- 【大话设计模式】UML关系在代码中的表现形式
- LeetCode Maximum Product Subarray
- Mobile web application框架技术
- poj_1860
- 简单背包问题-递归非递归实现
- MySQL创建函数报“ERROR 1418 ”错误,不能创建函数
- SQL replace 替换
- Javascript 克隆
- iOS __func__标识符
- lua学习笔记table表