152. Maximum Product Subarray
来源:互联网 发布:联通网络优化工程师 编辑:程序博客网 时间:2024/04/26 01:47
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
- mysql 获取两个日期相减
- 209. Minimum Size Subarray Sum
- uboot的编译及配置浅析 和 uboot启动,内核启动详细讲解
- mvvm模式详解
- Java、C#、C++定义数组区别
- 152. Maximum Product Subarray
- web服务器、HTTP服务器、应用服务器的区别
- js数组的拷贝赋值复制二三事总结
- vivado与modelsim联合仿真
- cond条件变量
- HDU2007_平方和与立方和
- iOS视频采集(一)
- 【图论+二分】【CQBZOJ 1635】【图论专项赛】无线通讯网
- 串口通讯