image.png

动态规划

image.png
image.png
image.png
image.png
image.png
image.png

code

  1. public int maxProduct(int[] nums) {
  2. int max = Integer.MIN_VALUE,imax=1,imin=1;
  3. //遍历
  4. for(int i:nums){
  5. //如果当前元素是负数 则交换最大值和最小值
  6. if(i<0){
  7. int tmp = imax;
  8. imax = imin;
  9. imin = tmp;
  10. }
  11. //更新当前最大值 和最小值
  12. imax = Math.max(imax*i,i);
  13. imin = Math.min(imin*i,i);
  14. max = Math.max(max,imax);
  15. }
  16. return max;
  17. }