Leetcode 152-MaximumProductSubarray 解题报告
来源:互联网 发布:linux不记历史命令 编辑:程序博客网 时间:2024/06/10 03:59
Leetcode 152-MaximumProductSubarray 解题报告
题目
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.
分析
这道题和53题找到数组中连续和最大的序列类似,需要维护全局最大和局部最大.
不同的是连续和有可能是一个小的片段而且只可能是不断的从局部和最大的里面挑,
但是乘积的最大有可能是由乘积最小的那个数字乘上一个负数然后变成最大.所以我们要维护2个局部数组,局部最大和局部最小,后续思路和53题(具体题目思路点链接)基本一致,
分别计算当前值乘最小值,当前值乘最大值,和当前值3者之间的最大和最小值,
全局最大是3者之间的最大值
AC代码
class Solution {public: int maxProduct(vector<int>& nums) { int minP = nums[0]; int maxP = nums[0]; int ans = nums[0]; for (int i = 1; i < nums.size(); ++i) { int tmin = minP*nums[i]; int tmax = maxP*nums[i]; maxP = max(max(tmin, tmax), nums[i]); minP = min(min(tmin, tmax), nums[i]); ans = max(maxP, ans); } return ans; }};
阅读全文
0 0
- Leetcode 152-MaximumProductSubarray 解题报告
- LeetCode 解题报告索引
- [LeetCode]Permutations,解题报告
- Leetcode Triangle 解题报告
- [LeetCode]Anagrams,解题报告
- leetCode解题报告
- [LeetCode]Candy, 解题报告
- 【LeetCode】Candy 解题报告
- 【LeetCode】Triangle 解题报告
- 【LeetCode】Permutations 解题报告
- LeetCode 解题报告 LinkedListCycleII
- LeetCode 解题报告 Candy
- 【LeetCode】Anagrams 解题报告
- 【LeetCode】Combinations 解题报告
- 【LeetCode】Subsets 解题报告
- LeetCode 解题报告 LargestNumber
- [LeetCode]DeleteDuplicateEmails,解题报告
- LeetCode-Subsets-解题报告
- Bargaining Table
- centos7 二进制安装包安装 mysql5.6
- 微信小程序中设置全局变量
- numpy_operations(Numberical operations on arrays)
- 300.11文件的创建和移动
- Leetcode 152-MaximumProductSubarray 解题报告
- UVa1630 Folding 记忆化搜索
- 何为语法糖?
- 问题:浏览器CSS/JS以怪异模式渲染
- D. Clique Problem
- Vue之for循环
- HTC按键代码
- mysql cpu使用率过高解决方法
- 资源链接