leecode-152. 乘积最大子数组


152. 乘积最大子数组

    public int maxProduct(int[] nums) {

        int max = Integer.MIN_VALUE,imax = 1,imin = 1;

        for(int x : nums){

            if(x < 0){
                imax = imax ^ imin;
                imin = imax ^ imin;
                imax = imax ^ imin;
            }
			//每个位置的最大子乘积
            imax = Math.max(imax * x,x);
			//每个位置的最小子乘积
            imin = Math.min(imin * x,x);

            max = Math.max(max,imax);

        }

        return max;
    }