lintcode: Maximum Product Subarray
2016-04-10 16:16
316 查看
Find the contiguous subarray within an array (containing at least one number) which has the largest product.
跟lintcode: Maximum Subarray 类似。
但乘法和加法不同,乘法不是线性递增的,可能有一个数是负数很小,乘以一个整数后就变得很大了。
做法是在维持一个局部最大数组的同时,维持一个局部最小的数组。
参考:/article/1581335.html
跟lintcode: Maximum Subarray 类似。
但乘法和加法不同,乘法不是线性递增的,可能有一个数是负数很小,乘以一个整数后就变得很大了。
做法是在维持一个局部最大数组的同时,维持一个局部最小的数组。
参考:/article/1581335.html
class Solution { public: /** * @param nums: a vector of integers * @return: an integer */ int maxProduct(vector<int>& nums) { // write your code here int localMax=nums[0]; int localMin=nums[0]; int globalMax=nums[0]; for(int i=1;i<nums.size();i++){ int tmp=localMax; localMax=max(max(localMax*nums[i],nums[i]),localMin*nums[i]); localMin=min(min(localMin*nums[i],nums[i]),tmp*nums[i]); if(localMax>globalMax){ globalMax=localMax; } } return globalMax; } };
相关文章推荐
- 泛型(一)
- python:mysql查询
- 软件工程---做汉堡,结对2.0
- EM算法在直线分类与灭点检测中的应用(关于一篇文章的读后感)
- 完美解决 手机软键盘遮挡问题
- Andriod中Service的生命周期
- asp.net中子级Repeater获取父级Repeater绑定项的值 Eval
- SDAU 搜索专题 20 Prime Ring Problem
- APP性能测试
- DFS&BFS--最大乘积
- C++的一些零散知识
- 利用百度地图WEB服务APIGeoCoding API批量地址解析
- Java排序算法——快速排序
- 夺命雷公狗---Thinkphp----4之数据表的设计
- Javascript全局变量var与不var的区别
- java保留两位小数
- 如何在CSDN博客中编辑公式?
- 初始化MySQL
- matlab中save,load使用方法
- linux下组管理命令详解