leetcode-152 Maximum Product Subarray
来源:互联网 发布:excel中没有数据有效性 编辑:程序博客网 时间:2024/05/17 22:42
对于Product Subarray,要考虑到一种特殊情况,即负数和负数相乘:如果前面得到一个较小的负数,和后面一个较大的负数相乘,得到的反而是一个较大的数,如{2,-3,-7},所以,我们在处理乘法的时候,除了需要维护一个局部最大值,同时还要维护一个局部最小值,由此,可以写出如下的转移方程式:
max_copy[i] = max_local[i]
max_local[i + 1] = Max(Max(max_local[i] * A[i], A[i]), min_local * A[i])
min_local[i + 1] = Min(Min(max_copy[i] * A[i], A[i]), min_local * A[i])
max_local[i + 1]表示已下标i+1结尾的连续字数组的最大乘积
<span style="font-family:Microsoft YaHei;font-size:14px;">class Solution {public: int maxProduct(vector<int>& nums) { int len = nums.size(); if(len == 0) return -1; int res = nums[0]; int dpmax = nums[0] , dpmin = nums[0]; for(int i = 1; i < len; i++){ int tmpmax = max(max(dpmax * nums[i],nums[i]),dpmin * nums[i]); dpmin = min(dpmax * nums[i],min(dpmin * nums[i],nums[i])); dpmax = tmpmax; if(dpmax > res) res = dpmax; } return res; }};</span>
0 0
- Leetcode(152) Maximum Product Subarray
- leetcode 152: Maximum Product Subarray
- [leetcode 152] Maximum Product Subarray
- [leetcode] 152 Maximum Product Subarray
- leetcode-152 Maximum Product Subarray
- Maximum Product Subarray - LeetCode 152
- LeetCode---(152)Maximum Product Subarray
- Leetcode 152 Maximum Product Subarray
- LeetCode(152) Maximum Product Subarray
- leetcode 152: Maximum Product Subarray
- leetcode 152 Maximum Product Subarray
- [leetcode] 152 Maximum Product Subarray
- LeetCode 152: Maximum Product Subarray
- LeetCode 152 Maximum Product Subarray
- LeetCode 152 Maximum Product Subarray
- LeetCode(152) Maximum Product Subarray
- Leetcode 152 Maximum Product Subarray
- leetcode 152 Maximum Product Subarray
- 圖片輪播增加播放影音檔功能
- STM32 GCC 使用 USB 库出现”undefined reference to _sbrk”问题解决
- ora-02292,ora-02266主键约束问题
- 几大抽屉效果第三方总结
- C++--结构体和类
- leetcode-152 Maximum Product Subarray
- Gson解析json字符串,并封装成List<T>
- 扫雷游戏原理
- hive1.1安装
- java中的IO整理
- 利用事务复制实现大容量表定长字段类型的快速变更
- 【python】脚本001-文件备份(模板)
- [学习记录]NSString字符串操作及个人分析
- Leetcode: Valid Palindromic