LintCode_191 Maximum Product Subarray
来源:互联网 发布:d3.js 地图轨迹点 编辑:程序博客网 时间:2024/06/11 06:32
Find the contiguous subarray within an array (containing at least one number) which has the largest product.
Example
For example, given the array [2,3,-2,4]
, the contiguous subarray [2,3]
has the largest product = 6
.
思路是dp解决, 过程中保存最小的整数与最大的负数, 然后你懂的~
class Solution {public: /** * @param nums: a vector of integers * @return: an integer */ int maxProduct(vector<int>& nums) { // write your code here const int len = nums.size(); int dp[len]; int neg_max = INT_MIN; int pos_min = INT_MAX; int max_val; for (int i = 0; i < nums.size(); i++) { if (i == 0) { dp[0] = nums[0]; max_val= dp[0]; } else { if (dp[i-1] !=0) { dp[i] = dp[i-1] * nums[i]; }else { dp[i] = nums[i]; } if (dp[i] > 0) { max_val = max(max_val, dp[i]); } if (dp[i] < 0) { int max_neg; if (neg_max==INT_MIN) max_neg = dp[i]; else max_neg = dp[i] / neg_max; max_val = max(max_val, max_neg); } if (dp[i] == 0) { max_val = max(max_val, dp[i]); neg_max = INT_MIN; } } //cout<<dp[i]<<" "<<neg_max<<endl; if (dp[i] < 0) { neg_max = max(neg_max, dp[i]); } } return max_val; }};
0 0
- LintCode_191 Maximum Product Subarray
- 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
- javaweb学习总结(四十六)——Filter(过滤器)常见应用
- LintCode_190 Next Permutation II
- Java基础加强总结(三)——代理(Proxy)
- SDOI2016 R1&&R2 总结&&爆零记
- JavaScript学习总结(二十)——Javascript非构造函数的继承(浅拷贝和深拷贝)
- LintCode_191 Maximum Product Subarray
- javaweb学习总结(四十七)——监听器(Listener)在开发中的应用
- JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet
- JNDI学习总结(一)——JNDI数据源的配置
- JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源
- JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
- 数据库表分割技术浅析(水平分割/垂直分割/库表散列)
- MyEclipse使用总结——使用MyEclipse打包带源码的jar包