[Medium]Maximum Product Subarray
来源:互联网 发布:yyf淘宝店地址 编辑:程序博客网 时间:2024/05/23 00:41
问题:
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.
解法:
源码:
class Solution {public: int max_(int a, int b) { if (a > b) return a; else return b; } int min_(int a, int b) { if (a < b) return a; else return b; } int maxProduct(vector<int>& nums) { int n = nums.size(); int f1[n], f2[n]; if (n == 1) return nums[0]; if (nums[0] > 0) { f1[0] = nums[0]; f2[0] = 0; } else { f2[0] = nums[0]; f1[0] = 0; } for (int i = 1; i < n; ++i) { if (nums[i] > 0) { f1[i] = max_(f1[i-1] * nums[i], nums[i]); f2[i] = f2[i-1] * nums[i]; } else { f1[i] = f2[i-1] * nums[i]; f2[i] = min_(f1[i-1] * nums[i], nums[i]); } } int ans = f1[0]; for (int i = 1; i < n; ++i) { if (f1[i] > ans) ans = f1[i]; } return ans; }};
0 0
- [Medium]Maximum Product Subarray
- 152. Maximum Product Subarray -Medium
- 152. Maximum Product Subarray Medium
- [Leetcode 152, Medium] Maximum Product Subarray
- 【Leet Code】152. Maximum Product Subarray---Medium
- Leetcode 152. Maximum Product Subarray (Medium) (cpp)
- Medium 152题 Maximum Product Subarray
- 【LeetCode】152. Maximum Product Subarray (Medium)
- 53. Maximum Subarray #Medium
- [Medium]Maximum 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
- Linux中Mongodb的使用
- POJ-3278-Catch That Cow[基础BFS]
- 修改ramdisk根文件系统方法
- [Medium]Maximal Square
- How tomcat works——3 连接器
- [Medium]Maximum Product Subarray
- [Easy]Best Time to Buy and Sell Stock
- 紫书 例题7-5 UVA 129
- [Medium]Triangle
- 集合之Collection、List
- HTTP状态码详解
- 夕拾算法初级篇:4)日期差值
- [Medium] Unique Binary Search Trees
- Node.js进程守护,防止程序崩溃自动退出