LeetCode[Dynamic Programming]: Maximum Product Subarray
2015-03-27 17:20
615 查看
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++代码实现如下:
时间性能如下图所示:
For example, given the array [2,3,-2,4],
the contiguous subarray [2,3] has the largest product = 6.
这类型题目适合用动态规划算法来做,由于存在负数的情况,所以不单要记录最大乘积,也要记录最小乘积。C++代码实现如下:
[code]class Solution { public: int maxProduct(int A[], int n) { if (0 == n) return 0; int maxRes = A[0]; int maxEnd = A[0]; int minEnd = A[0]; for (int i = 1; i < n; ++i) { int end1 = maxEnd * A[i], end2 = minEnd * A[i]; maxEnd = max(A[i], max(end1, end2)); minEnd = min(A[i], min(end1, end2)); if (maxEnd > maxRes) maxRes = maxEnd; } return maxRes; } };
时间性能如下图所示:
相关文章推荐
- leetcode 152 Maximum Product Subarray
- leetcode-152 Maximum Product Subarray
- Leetcode: Maximum Product Subarray
- leetcode 152 —— Maximum Product Subarray
- LeetCode-Maximum Product Subarray
- LeetCode | Maximum Product Subarray
- LeetCode:Maximum Product Subarray
- [leetcode] Maximum Product Subarray
- leetcode做题总结,动态规划II(Maximum Subarray, Maximum Product Subarray)
- 【Leetcode】Maximum Product Subarray (DP)
- LeetCode 152 Maximum Product Subarray (思维)
- [LeetCode] Maximum Product Subarray
- 50 leetcode - Maximum Product Subarray
- leetcode:Maximum Product Subarray
- leetcode-Maximum Product Subarray-ZZ
- 【LeetCode】Maximum Product Subarray
- leetcode Maximum Product Subarray
- Leetcode--Maximum Product Subarray
- LeetCode - 152 - Maximum Product Subarray
- LeetCode Maximum Product Subarray 解题报告