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
.
?
public class Solution { public int maxProduct(int[] nums) { if (nums == null || nums.length == 0) { return 0; } int max = nums[0]; int min = nums[0]; int res = nums[0]; int maxEnd = 0; int minEnd = 0; for (int i = 1; i < nums.length; i++) { maxEnd = max * nums[i]; minEnd = min * nums[i]; max = Math.max(Math.max(maxEnd, minEnd), nums[i]); min = Math.min(Math.min(maxEnd, minEnd), nums[i]); res = Math.max(max, res); } return res; } }
?
原文:http://hcx2013.iteye.com/blog/2251556