算法<Maximum Product Subarray>
来源:互联网 发布:任务多打码辅助软件 编辑:程序博客网 时间:2024/06/02 18:01
题目的要求是求一个一维数组中子串的最大乘积,比如:
Find the contiguous subarray within an array (containing at least one number) which has the largest product.For example, given the array [2,3,-2,4],the contiguous subarray [2,3] has the largest product = 6.
可以使用动态规划卡登算法来求解,但是需要注意的一点是,一个数与负数相乘可能会让最小的数变成最大的数,也有可能让最大的数变成最小的数,所以需要稍稍改动一下即可解决问题:
public int maxProduct(int[] nums) { if (nums.length < 1) return 0; int result = nums[0]; int max = nums[0]; int min = nums[0]; for (int i = 1; i < nums.length; i++) { int preMax = max; max = Math.max(nums[i], Math.max(nums[i] * max, nums[i] * min)); min = Math.min(nums[i], Math.min(nums[i] * min, nums[i] * preMax)); result = Math.max(max, result); } return result; }
阅读全文
0 0
- 算法<Maximum Product Subarray>
- LeetCode_Maximum Subarray | Maximum Product Subarray
- Maximum Product Subarray
- Maximum Product Subarray
- Maximum Product Subarray 【LeetCode】
- [LeetCode] Maximum Product Subarray
- leetcode-Maximum Product Subarray
- Maximum Product Subarray -- LeetCode
- LeetCode-Maximum Product Subarray
- [LeetCode]Maximum Product Subarray
- [LeetCode]Maximum Product Subarray
- 【LeetCode】Maximum Product Subarray
- leetcode:Maximum Product Subarray
- leetcode: Maximum Product Subarray
- Leetcode: Maximum Product Subarray
- Maximum Product Subarray
- Maximum Product Subarray
- [LeetCode]Maximum Product Subarray
- ConcurrentHashMap的JDK1.8实现
- Python字符串中的换行符和制表符
- ubuntu系统下,hp 650 G2笔记本合上盖子后不进入睡眠状态的问题
- 开博小记
- JMeter之JDBC请求
- 算法<Maximum Product Subarray>
- ubuntu环境进入NTFS分区挂载错误
- Chrome 浏览器中查看 webSocket 连接信息
- C#梳理【数据类型】
- HDFS使用QJM(Quorum Journal Manager)实现的高可用性以及备份机制
- 王者荣耀之「装饰者模式」
- Node.js
- 占位
- mybits,环境搭建和简单查询