LeetCode 152. Maximum Product Subarray
来源:互联网 发布:北京网络咨询医生招聘 编辑:程序博客网 时间:2024/06/03 15:43
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
.
分别创建一个最大、最小数组用于记录数据,当数据项小于零从最小数组中选择元素,当数据项大于零时从最大数组中选择元素
java
class Solution { public int maxProduct(int[] nums) { if (nums == null || nums.length ==0) { return 0; } int[] max = new int[nums.length]; int[] min = new int[nums.length]; max[0] = nums[0]; min[0] = nums[0]; int val = nums[0]; for (int i = 1; i < nums.length; i++) { max[i] = min[i] = nums[i]; if (nums[i] > 0) { max[i] = Math.max(max[i], max[i - 1] * nums[i]); min[i] = Math.min(min[i], min[i - 1] * nums[i]); } else { max[i] = Math.max(max[i], min[i - 1] * nums[i]); min[i] = Math.min(min[i], max[i - 1] * nums[i]); } val = Math.max(val, max[i]); } return val; }}
python
class Solution(object): def maxProduct(self, nums): """ :type nums: List[int] :rtype: int """ if nums is None or len(nums) == 0: return 0 maxArr, minArr = [nums[0]] * len(nums), [nums[0]] * len(nums) val = nums[0] for i in range(1, len(nums)): maxArr[i], minArr[i] = nums[i], nums[i] if nums[i] > 0: maxArr[i] = max(maxArr[i], maxArr[i - 1] * nums[i]) minArr[i] = min(minArr[i], minArr[i - 1] * nums[i]) else: maxArr[i] = max(maxArr[i], minArr[i - 1] * nums[i]) minArr[i] = min(minArr[i], maxArr[i - 1] * nums[i]) val = max(val, maxArr[i]) return val
阅读全文
0 0
- LeetCode 152. Maximum Product Subarray
- [leetcode] 152.Maximum Product Subarray
- [LeetCode]152. Maximum Product Subarray
- leetcode:152. Maximum Product Subarray
- leetcode 152. Maximum Product Subarray
- 152. Maximum Product Subarray LeetCode
- [leetcode] 152. Maximum Product Subarray
- LeetCode *** 152. Maximum Product Subarray
- LeetCode 152. Maximum Product Subarray
- leetcode.152. Maximum Product Subarray
- LeetCode-152.Maximum Product Subarray
- LeetCode - 152. Maximum Product Subarray
- [Leetcode]152. Maximum Product Subarray
- LeetCode 152. Maximum Product Subarray
- leetcode:152. Maximum Product Subarray
- [leetcode]152. Maximum Product Subarray
- LeetCode 152. Maximum Product Subarray
- [LeetCode] 152. Maximum Product Subarray
- 用递归完成数组的输入输出相关问题
- 并查集模板
- 泛型总结
- 辗转相除法:求最大公因数
- Sklearn入门
- LeetCode 152. Maximum Product Subarray
- 迭代器
- TensorFlow之一 ----- 在Windows平台安装TensorFlow
- 机器学习:朴素贝叶斯--python
- js和jsp所有页面跳转总结
- ubuntu ssh 显示界面
- Content Provider 详解
- Warning: require(): open_basedir restriction in effect. File(/home/framework/laravel/
- IDEA2017注册码