LeetCode 152. Maximum Product Subarray(最大乘积)
2016-05-26 01:04
447 查看
原题网址:https://leetcode.com/problems/maximum-product-subarray/
Find the contiguous subarray within an array (containing at least one number) which has the largest product.
For example, given the array
the contiguous subarray
方法:按0将数组分段。
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.
方法:按0将数组分段。
public class Solution { private int max(int[] nums, int from, int to, int product) { int right = product; int max = right; int left = 1; for(int i=from; i<=to; i++) { left *= nums[i]; right /= nums[i]; max = Math.max(max, left); if (i<to) max = Math.max(max, right); } return max; } public int maxProduct(int[] nums) { if (nums==null || nums.length==0) return 0; int max = nums[0]; int product = 1; int from = 0; for(int i=0; i<nums.length; i++) { if (nums[i] == 0) { max = Math.max(max, nums[i]); if (from < i) max = Math.max(max, max(nums, from, i-1, product)); from = i+1; product = 1; } else { product *= nums[i]; if (i==nums.length-1) max = Math.max(max, max(nums, from, i, product)); } } return max; } }
相关文章推荐
- Android--Toast时间
- 初试Twitter API
- 2015年职级评定总结
- 1039. Course List for Student (25)
- LeetCode 153. Find Minimum in Rotated Sorted Array(旋转数组查找)
- eclipse建maven web项目运行没有run as server
- 网页搜集系统
- 网页搜集系统
- 【Ionic】Error: failed to fetch platform android
- IE无法上网,但其他浏览器可以
- 学生信息管理系统(struts2+Hibernate)(1)
- Android M MO流程 并与Android L MO对比
- 大数相加,大数相乘和100!
- LeetCode 154. Find Minimum in Rotated Sorted Array II(旋转数组查找)
- JS封装简单后代选择器
- LeetCode 044 Wildcard Matching
- POJ 1845 Sumdiv(逆元、分治)【真心好题啊=_=】
- LeetCode 155. Min Stack(最小栈)
- HDU 2795 Billboard 【单节点+脑洞】
- EffecitveJava 第二章