【Leetcode】Maximum Product Subarray
来源:互联网 发布:蜂窝数据打开自动关闭 编辑:程序博客网 时间:2024/09/21 08:19
题目链接:https://leetcode.com/problems/maximum-product-subarray/
题目:
Find the contiguous subarray within an array (containing at least one number) which has the largest product.
For example, given the array [2,3,-2,4]
,
the contiguous subarray [2,3]
has the largest product = 6
.
思路:
c[i]表示从0~i的数组中 包含nums[i]这个结点的最大乘积。状态转移方程:c[i] = max{nums[i],c[i-1]*nums[i]}
但这样的话,当有负数存在 结果就不对了,因为当前的乘积可能是负数,但后面可能还有负数,负负得正,当前的负数也应该被记录下来。
再加一个数组,用于记录最小乘积,因为当前最小乘积在未来可能会变成最大乘积。
算法:
public int maxProduct(int[] nums) { int maxProduct = nums[0]; int max[] = new int[nums.length];// 到i的连续最大和 int min[] = new int[nums.length];// 到i的连续最小和 max[0] = nums[0]; min[0] = nums[0]; for (int i = 1; i < nums.length; i++) { max[i] = Math.max(nums[i] * min[i - 1], nums[i] * max[i - 1]);// 连续最大和需要考虑最小、最大情况 max[i] = Math.max(max[i], nums[i]); min[i] = Math.min(nums[i] * min[i - 1], nums[i] * max[i - 1]);// 同理 min[i] = Math.min(nums[i], min[i]); maxProduct = Math.max(maxProduct, max[i]); } return maxProduct; }
2 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
- Tomcat及其规范
- JAVA反射机制深入学习(二)实例演示JAVA反射机制的应用
- 多无线AP用中继方式实现漫游
- Lua ---- LFS库的使用
- 【Leetcode】Increasing Triplet Subsequence
- 【Leetcode】Maximum Product Subarray
- UGUI事件
- 【Leetcode】Perfect Squares
- iOS之基础框架再认识
- 千杯酒中检测那一杯毒酒的问题及思考
- 2015年山东省第六届ACM大学生程序设计竞赛-B-Lowest Unique Price
- nod-1089-最长回文子串 V2
- Hust oj 1124 Final Destination(递推)
- C 语言 register 关键字