152. Maximum Product Subarray
来源:互联网 发布:网络心理咨询师招聘 编辑:程序博客网 时间:2024/03/29 10:12
QUESTION
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.
思路
这道题和之前求最大连续的和差不多,所不同的是乘积有负数的情况,不能舍弃,有一天负数也会变为最大的,product有乘积的意思。最大连续子串的和的求解方法是,从左到右遍历,把以前的和与现在的元素作对比,把较大的那个存入以前的和。最大连续乘积的不同在于,不光要存最大的积还要存最小的积,上代码最清楚了
代码
public class Solution { public int maxProduct(int[] nums) { int maxpre = nums[0]; int minpre = nums[0]; int maxSofar = nums[0]; int maxhere,minhere; for(int i = 1;i < nums.length;i++){ maxhere = Math.max(Math.max(maxpre * nums[i],minpre * nums[i]),nums[i]); minhere = Math.min(Math.min(maxpre * nums[i],minpre * nums[i]),nums[i]);//保留一个最小值 maxSofar = Math.max(maxhere,maxSofar); maxpre = maxhere; minpre = minhere; } return maxSofar; }}
结果及分析
时间复杂度为O(n),空间复杂度为O(1);
0 0
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 152. Maximum Product Subarray
- 1067: [SCOI2007]降雨量 我不知道这是个什么鬼
- Android群英传——第四章ListView常用优化
- 162. Find Peak Element
- ConcurrentModificationException
- 209. Minimum Size Subarray Sum
- 152. Maximum Product Subarray
- Android下创建隐藏文件
- 认知【STL】里的set和multise
- 使用DOS命令创建一个基于Maven的Web项目
- 点击listview的item,带动画效果的展开详情(二)
- 欢迎使用CSDN-markdown编辑器
- Python内建方法
- 解决在CentOS 7上重装MySQL 5.7.10后root账户无法登陆
- BinaryConnect: Training Deep Neural Networks with binary weights during propagations