【leetcode】Array—— Maximum Product Subarray(152)
来源:互联网 发布:张辽和关羽谁厉害知乎 编辑:程序博客网 时间:2024/06/02 02:28
题目: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
.
思路:之前写过一题Maximun Subarray,用DP算法,maxEndHere的思路,时间复杂度为O(n)。附上之前的博客:http://blog.csdn.net/u013127687/article/details/50809675
该题模范之前题目的思路,也采用DP以及maxEndHere的思路,但是细节方面有所不同。之前求和,如果是负数,max肯定是一直减小,但是本题中,如果出现负数,max的确变小了,但是再出现一次负数,max会增大。所以本题中维护了两个变量:maxEndHere以及minEndHere。
maxEndHere=max{nums[i] , nums[i]*maxEndHere , nums[i]*minEndHere}
minEndHere=min{nums[i] , nums[i]*maxEndHere , nums[i]*minEndHere}
最终返回maxEndHere的最大值。
代码:
public int maxProduct(int[] nums) { int max=nums[0]; int maxEndHere=nums[0]; int minEndHere=nums[0]; for(int i=1;i<nums.length;i++){ int i1=maxEndHere*nums[i]; int i2=minEndHere*nums[i]; maxEndHere=Math.max(Math.max(i1, i2),nums[i]); minEndHere=Math.min(Math.min(i1, i2),nums[i]); max=Math.max(maxEndHere, max); } return max; }
0 0
- 【leetcode】Array—— Maximum Product Subarray(152)
- leetcode 152 —— Maximum Product Subarray
- LeetCode—Maximum Product Subarray
- LeetCode(152) Maximum Product Subarray
- LeetCode——Maximum Product Subarray
- LeetCode——Maximum Product Subarray
- Maximum Product Subarray —— Leetcode
- 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
- Maximum Product Subarray - LeetCode 152
- LeetCode---(152)Maximum Product Subarray
- Leetcode 152 Maximum Product Subarray
- LeetCode(152) Maximum Product Subarray
- PhantomJS入门
- Android drawable in xml study
- 转:Selenium WebDriver 中鼠标和键盘事件分析及扩展
- 各种标签表达式集合
- PHP非线程安全与线程安全版本的选择技巧
- 【leetcode】Array—— Maximum Product Subarray(152)
- symbol(s) not found for architecture arm64 与disable bit code
- 腾讯研究院发布《中国分享经济全景解读报告》
- 用R进行文本挖掘与分析:分词、画词云【2】
- SQLiteDatabase的使用
- 历届试题 地宫取宝
- windows mysql设置 账户root 密码
- hibernate用法注释积累
- 网页自动识别跳转手机或pc