解题报告:乘积最大子序列
2015-07-08 11:19
344 查看
http://www.lintcode.com/zh-cn/problem/maximum-product-subarray/
找出一个序列中乘积最大的连续子序列(至少包含一个数)。
您在真实的面试中是否遇到过这个题?
样例
比如, 序列
标签 Expand
相关题目 Expand
其实就是3中情况 整数 和负数 和0相乘
所以0起到隔断的作用
负数和整数相乘会更小,所以要找最小数
整数和整数相乘会更大,所以要找最大数
找出一个序列中乘积最大的连续子序列(至少包含一个数)。
您在真实的面试中是否遇到过这个题?
样例
比如, 序列
[2,3,-2,4]中乘积最大的子序列为
[2,3],其乘积为
6。
标签 Expand
相关题目 Expand
其实就是3中情况 整数 和负数 和0相乘
所以0起到隔断的作用
负数和整数相乘会更小,所以要找最小数
整数和整数相乘会更大,所以要找最大数
class Solution { public: /** * @param nums: a vector of integers * @return: an integer */ int maxProduct(vector<int>& nums) { // write your code here if (nums.size() <= 0)return 0; int minx = nums[0]; int maxx = nums[0]; int mint = 1; int maxt = 1; int maxv=nums[0]; for (int i = 1; i<nums.size(); i++){ if (nums[i] == 0){ minx = 1; maxx = 1; } else{ mint =minx; maxt =maxx; minx = min(min(mint*nums[i], nums[i]), maxt*nums[i]); maxx = max(max(mint*nums[i], nums[i]), maxt*nums[i]); maxv = max(maxv, maxx); } } return maxv; } };
相关文章推荐
- NSString的compare方法注意事项
- javascript获取重复次数最多的字符
- CentOS查看线程、硬盘、内存、cpu、网卡
- Android PowerImageView实现,可以播放动画的强大ImageView
- 解决 declaration is incompatible with "__interwork __softfp unsigned long __get_PSP(void)" 报错
- 011 Complaint
- 全透明状态栏,导航栏
- Python下opencv使用笔记(三)(图像的几何变换)
- CSS之 :before && :after
- 快速搭建FTP服务器 by:http://cyr520.blog.51cto.com
- python友情链接检查方法
- 织梦dedecms — 调用第一张原图
- 操作系统的内核
- 二叉树 已知中序 后序 求前序
- iOS下使用FFMPEG的一些总结
- html css文件宏观调控-外部样式表
- ajax跨域和anglarjs跨域
- Simpler is Better
- Linux内核驱动之GPIO子系统
- 各种远程通信协议分析、比较