DP Leetcode - Maximum Product Subarray
来源:互联网 发布:易语言远控源码 编辑:程序博客网 时间:2024/06/05 06:43
最近一直忙着写paper,很久没做题,一下子把题目搞复杂了。。思路理清楚了非常简单,每次只需更新2个值:当前子序列最大乘积和当前子序列的最小乘积。最大乘积被更新有三种可能:当前A[i]>0,乘以前面最大的数(>0),得到新的最大乘积;当前A[i]<0,乘以前面最小的数(<0),得到新的最大乘积;A[i]它自己>0,(A[i-1]==0。最小乘积同理。。
class Solution {public:int Max(int a, int b, int c){int max = -1 << 30;if (a >= b)max = a;elsemax = b;if (c > max)max = c;return max;}int Min(int a, int b, int c){int min = 1 << 30;if (a <= b)min = a;elsemin = b;if (c < min)min = c;return min;}int maxProduct(int A[], int n) {int maxPPrev=A[0], maxP;int minPPrev = A[0], minP;int max = A[0];for (int i = 1; i < n; i++){maxP = Max(maxPPrev * A[i], minPPrev * A[i], A[i]);minP = Min(maxPPrev * A[i], minPPrev * A[i], A[i]);maxPPrev = maxP;minPPrev = minP;if (maxPPrev > max)max = maxPPrev;if (minPPrev > max)max = minPPrev;}return max;}};
0 0
- DP Leetcode - Maximum Product Subarray
- 【Leetcode】Maximum Product Subarray (DP)
- LeetCode 53/152 Maximum Subarray/Maximum Product Subarray---DP **
- LeetCode Maximum Subarray Maximum Product Subarray DP问题
- 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
- 二维数组旋转
- 苹果审核24项(中文版)
- iOS:KVO的概述与使用
- Ubuntu14.04 找不到ia32-lib 解决方案
- 易语言光速网络引擎教程第一课
- DP Leetcode - Maximum Product Subarray
- 光速网张引擎第一课(2小节)
- 车管所 于波
- delegate和Notification的区别
- Python数据模式
- Java程序员如何转Android开发
- delegate与block 互通性
- 项目失败,天生还是心脏不够大?
- Linux配置好samba共享后,在windows中只能浏览不能写入的解决方法