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.
Solution
publicclassSolution {publicintmaxProduct(int[] nums) {if (nums ==null||nums.length==0) return0;int max = nums[0];int min = nums[0];int res = nums[0];for(int i =1; i <nums.length; i ++) {int preMax = max; max =Math.max(Math.max(min*nums[i], max*nums[i]), nums[i]); min =Math.min(Math.min(min*nums[i], preMax*nums[i]), nums[i]); res =Math.max(max, res); }return res; }}