leetcode解题方案--152--Maximum Product Subarray
来源:互联网 发布:美股模拟交易软件java 编辑:程序博客网 时间:2024/05/20 14:19
题目
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 static int maxProduct(int[] nums) { int[] dpp = new int[nums.length]; int[] dpn = new int[nums.length]; dpp[0] = nums[0] > 0 ? nums[0] : 0; dpn[0] = nums[0] > 0 ? 0 : nums[0]; int retn = dpn[0]; int retp = dpp[0]; for (int i = 1; i < nums.length; i++) { if (nums[i] > 0) { dpp[i] = (dpp[i - 1] == 0 ? 1 : dpp[i - 1]) * nums[i]; dpn[i] = (dpn[i - 1] == 0 ? 0 : dpn[i-1])*nums[i]; } else if (nums[i] < 0) { dpn[i] = (dpp[i - 1] == 0 ? 1 : dpp[i - 1]) * nums[i]; dpp[i] = (dpn[i - 1] == 0 ? 0 : dpn[i-1])*nums[i]; } else { dpp[i] = 0; dpn[i] = 0; } retp= Math.max(dpp[i], retp); retn = Math.max(dpn[i],retn); } if (retp==0) { return retn; } return retp; }}
看到leetcode上解答还有左右各遍历一次的
阅读全文
0 0
- leetcode解题方案--152--Maximum Product Subarray
- LeetCode Maximum Product Subarray 解题报告
- LeetCode 解题报告 Maximum Product Subarray
- [LeetCode] 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
- 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
- Windows10+Python3.6下安装NumPy+SciPy+Matplotlib(转改)
- [Spring之AOP]
- (转)Lock和synchronized比较详解
- 根据字典的值大小对字典进行排序
- SWT 实现靠边自动隐藏
- leetcode解题方案--152--Maximum Product Subarray
- 软件小白学习java的日常生活
- android屏幕全屏下判断软键盘打开关闭,软键盘打开关闭不好用
- java异常
- Object类
- 【随笔】封装算法,在不同时间应用不同的业务规则
- JDBC—综述
- CORS解决ajax跨域问题
- 使用Sql Developer调试Oracle步骤