Maximum Product Subarray
来源:互联网 发布:上外翻译总公司 知乎 编辑:程序博客网 时间:2024/06/16 17:34
本题难点在于不但要动态规划最大值,还要动态规划最小值,因为最小值如果乘以一个负数,有可能变成最大值。
我没有意识到记录最小值这件事情,所以一直纠结在最大值上,后来用比较讨巧的brute-force的方法勉强AC通过(压缩连续的1为一个1),参考了unlock的solution,终于知道了要如何解决问题,代码如下:
class Solution {public: int max(int a,int b,int c) { int res=a; if(b>res) { res=b; } if(c>res) { res=c; } return res; } int min(int a,int b,int c) { int res=a; if(b<res) { res=b; } if(c<res) { res=c; } return res; } int maxProduct(int A[], int n) { if(n==0) { return 0; } if(n==1) { return A[0]; } vector<int> maxdp(n,0); vector<int> mindp(n,0); maxdp[0]=A[0]; mindp[0]=A[0]; int res=A[0]; for(int i=1;i<n;++i) { maxdp[i]=max(A[i],maxdp[i-1]*A[i],mindp[i-1]*A[i]); mindp[i]=min(A[i],maxdp[i-1]*A[i],mindp[i-1]*A[i]); if(maxdp[i]>res) { res=maxdp[i]; } } return res; }};
0 0
- LeetCode_Maximum Subarray | Maximum Product Subarray
- Maximum Product Subarray
- Maximum Product Subarray
- 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
- Maximum Product Subarray
- Maximum Product Subarray
- [LeetCode]Maximum Product Subarray
- Leetcode Maximum Product Subarray
- 字符串的拷贝
- LeetCode | Customers Who Never Order
- codeforces Rockethon 2015
- CentOS下多节点Openstack安装(三)—— glance安装
- 医联网!
- Maximum Product Subarray
- 数据结构(陈越)PAT练习题 第六周:图(下)
- CentOS下多节点Openstack安装(五)—— cinder安装
- (十一)桥梁模式
- 更好的使用google www.google.com/ncr
- 定义返回函数指针(地址)的函数
- 5、VTK在图像处理中的应用
- HDU1251 统计难题(字典树)
- ACM--steps--3.1.5--