博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
152. Maximum Product Subarray
阅读量:4620 次
发布时间:2019-06-09

本文共 837 字,大约阅读时间需要 2 分钟。

和53. Maximum Subarray是一个思路,所以在一起做了,主要就是维护一个局部最优和一个全局最优。

不同在于,因为是有正负数,负号会导致上一轮的最小可能在这轮成为最大的,所以每一次不仅要记录一个局部最大解,还要记录一个局部最小解。

1     public int maxProduct(int[] nums) { 2         if(nums == null || nums.length == 0) { 3             return 0; 4         } 5         int localMax = nums[0]; 6         int localMin = nums[0]; 7         int global = nums[0]; 8         for(int i = 1; i < nums.length; i++) { 9             int temp = localMax;10             localMax = Math.max(nums[i], Math.max(nums[i] * localMax, nums[i] * localMin));11             localMin = Math.min(nums[i], Math.min(nums[i] * temp, nums[i] * localMin));12             global = Math.max(global, Math.max(localMax, localMin));13         }14         return global;15     }

bug记录:

第9行,因为localMax计算过一次,所以在第11行的时候已经更新了,所以要先记录一下。

 

转载于:https://www.cnblogs.com/warmland/p/5237596.html

你可能感兴趣的文章
android编译遇到问题修改
查看>>
解决Ubuntu18.04.2远程桌面Xrdp登录蓝屏问题
查看>>
Git的安装和使用教程详解
查看>>
lsof命令详解
查看>>
常用模块,异常处理
查看>>
父窗口与子窗口之间的传值
查看>>
eclipse 找不到 tomcat 的解决方案
查看>>
HDU 1890--Robotic Sort(Splay Tree)
查看>>
connection string for Excel/Access 2010
查看>>
【转】【Python】Python中的__init__.py与模块导入(from import 找不到模块的问题)
查看>>
学习wavenet_vocoder之环境配置
查看>>
常用Maven命令
查看>>
Docker启动mysql的坑2
查看>>
j2ee爬坑行之二 servlet
查看>>
JAVA基础入门(JDK、eclipse下载安装)
查看>>
最基础的applet运用--在applet上画线
查看>>
并不对劲的hdu4777
查看>>
linux使用rz、sz快速上传、下载文件
查看>>
判断数字的正则表达式
查看>>
DOC常用命令(转)
查看>>