[leetcode]Maximum Product Subarray
2015-01-05 20:00
525 查看
class Solution { public: //和最大子串和不同的是:需要同时记录最大的正数和最小的负数 int maxProduct(int A[], int n) { if(n==0) return 0; if(n==1) return A[0]; //这一句不能少,否则在就输出maxVal=0 int maxPosValEndsWithLast = 0; int minNegValEndsWithLast = 0; int maxVal=0; int minVal=0; for(int i=0;i<n;i++){ if(A[i]>0){ maxPosValEndsWithLast = max( maxPosValEndsWithLast*A[i], A[i]); minNegValEndsWithLast = min( minNegValEndsWithLast*A[i], A[i]); }else if(A[i]<0){ int temp = maxPosValEndsWithLast; //注意保存临时现场 maxPosValEndsWithLast = minNegValEndsWithLast*A[i]; minNegValEndsWithLast = min( temp*A[i], A[i]); }else{//A[i]==0 maxPosValEndsWithLast = 0; minNegValEndsWithLast = 0; } //update maxVal = max(maxVal,maxPosValEndsWithLast); minVal = min(minVal,minNegValEndsWithLast); } return maxVal; } };
相关文章推荐
- leetcode maximum-product-subarray
- leetcode(152). Maximum Product Subarray
- [LeetCode]题解(python):152-Maximum Product Subarray
- Leetcode(152) Maximum Product Subarray
- LeetCode-Maximum Product Subarray-最大乘积子数组-情况判断
- 【Leetcode】【Medium】Maximum Product Subarray
- [LeetCode152]Maximum Product Subarray
- [leetcode]Maximum Product Subarray
- [leetcode]Maximum Product Subarray
- [LeetCode] Maximum Product Subarray
- LeetCode Maximum Product SubArray
- 【LeetCode 152】Maximum Product Subarray
- [LeetCode]Maximum Product Subarray
- [LeetCode] Maximum Product Subarray
- LeetCode Maximum Product Subarray_DP_最大子数组
- leetCode_Maximum Product Subarray
- 【LeetCode】【Solution】Maximum Product Subarray
- LEETCODE: Maximum Product Subarray
- [LeetCode] Maximum Product Subarray 解题思路
- 《leetCode》:Maximum Product Subarray