import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型 */ public int maxProduct (int[] nums) { if(nums == null || nums.length == 0) return 0 ; if(nums.length == 1) return nums[0] ; //记录 乘积为正数 的最大乘积 int fz[] = new int[nums.length] ; //记录 乘积为负数 的最小乘积 int ff[] = new int[nums.length] ; fz[0] = nums[0] ; ff[0] = nums[0] ; int max = nums[0] ; for(int i = 1 ; i < nums.length ; i ++) { fz[i] = nums[i] ; ff[i] = nums[i] ; //计算ff[i] ff[i] = Math.min(ff[i] , Math.min(ff[i]*ff[i-1] , ff[i]*fz[i-1])) ; //计算fz[i] fz[i] = Math.max(fz[i] , Math.max(fz[i]*fz[i-1] , fz[i]*ff[i-1])) ; //更新最大值 if(fz[i] > max) max = fz[i] ; } return max ; } }