image.png

解题思路

动态规划

image.png

  1. public int maxProduct(int[] nums) {
  2. int max = Integer.MIN_VALUE, imax = 1, imin = 1;
  3. for(int i=0; i<nums.length; i++){
  4. if(nums[i] < 0){
  5. int tmp = imax;
  6. imax = imin;
  7. imin = tmp;
  8. }
  9. imax = Math.max(imax*nums[i], nums[i]);
  10. imin = Math.min(imin*nums[i], nums[i]);
  11. max = Math.max(max, imax);
  12. }
  13. return max;
  14. }