编辑代码

class Main {
	public static void main(String[] args) {
		System.out.println("Hello JSRUN!   \n\n         - from JAVA .");
	}

    public int maxProduct(int[] nums) {
        int max = Integer.MIN_VALUE, imax = 0, imin = 0;

        for(int i = 0; i < nums.length; i++){
            if(nums[i] < 0){
                int temp = imax;
                imax = imin;
                imin = temp;
            }
            imax = Math.max(imax*nums[i],nums[i]);
            imin = Math.min(imin*nums[i],nums[i]);

            max = Math.max(max,imax);
        }
        return max;
    }

    public int maxProduct_1(int[] nums) {

        int[][] dp = new int[2][2];
        dp[0][0] = nums[0];
        dp[0][1] = nums[0];
        int max = nums[0];

        for(int i = 1; i < nums.length; i++){
            int x = i % 2;
            int y = (i - 1) % 2;

            dp[x][0] = Math.max(Math.max(nums[i] * dp[y][1], nums[i] * dp[y][0]), dp[y][0]);
            dp[x][1] = Math.min(Math.min(nums[i] * dp[y][1], nums[i] * dp[y][0]), dp[y][0]);

            max = Math.max(dp[x][0],max);
        }

        return max;
    }
    
}