152. Maximum Product Subarray
来源:互联网 发布:大数据 oop 编辑:程序博客网 时间:2024/03/29 13:19
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
.
思路:这道题跟Maximum Subarray模型上和思路上都比较类似,还是用一维动态规划中的“局部最优和全局最优法”。这里的区别是维护一个局部最优不足以求得后面的全局最优,这是由于乘法的性质不像加法那样,累加结果只要是正的一定是递增,乘法中有可能现在看起来小的一个负数,后面跟另一个负数相乘就会得到最大的乘积。不过事实上也没有麻烦很多,我们只需要在维护一个局部最大的同时,在维护一个局部最小,这样如果下一个元素遇到负数时,就有可能与这个最小相乘得到当前最大的乘积和,这也是利用乘法的性质得到的。代码如下: [http://blog.csdn.net/linhuanmars/article/details/39537283]
class Solution {public: int maxProduct(vector<int>& nums) { if(nums.empty() )return 0; int maxp = nums[0], result = nums[0], minp = nums[0]; for(int i = 1; i < nums.size(); i++) { int tmp = maxp; maxp = max(max(maxp*nums[i], minp*nums[i]),nums[i]); minp = min(min(tmp*nums[i], minp*nums[i]),nums[i]); result = max(maxp, result); } return result; }};
0 0
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 判断应用是否在后台或者正在运行
- fmt-时间
- webview
- 当我们谈Android编译系统的时候,我们在干吗?
- 部署hadoop后,datanode无法连接namenode
- 152. Maximum Product Subarray
- 使用过滤器防止简单的页面SQL注入
- 导入导出手机的Android的项目的数据库文件的bat文件编写
- 使用Vs2015开发linux(centos7)程序
- Android拍照和相册+系统裁剪功能返回图片
- UVA - 11292 Dragon of Loowater
- iptables详解 (转)
- windows 编译zlib
- 同伦法(Homotopy Method)