乘积最大子序列-LintCode
来源:互联网 发布:linux查看版本命令 编辑:程序博客网 时间:2024/06/10 03:17
找出一个序列中乘积最大的连续子序列(至少包含一个数)。
样例:
比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6。
#ifndef C191_H#define C191_H#include<iostream>#include<vector>using namespace std;class Solution {public: /* * @param nums: An array of integers * @return: An integer */ int maxProduct(vector<int> nums) { // write your code here if (nums.empty()) return 0; int len = nums.size(); vector<int> maxPro(len); vector<int> minPro(len); maxPro[0] = nums[0]; minPro[0] = nums[0]; for (int i = 1; i < len; ++i) { maxPro[i] = maxVal(nums[i], maxVal(nums[i] * maxPro[i - 1], nums[i] * minPro[i - 1])); minPro[i] = minVal(nums[i], minVal(nums[i] * maxPro[i - 1], nums[i] * minPro[i - 1])); } int sum = maxPro[0]; for (int i = 1; i<len; ++i) { if (sum<maxPro[i]) sum = maxPro[i]; } return sum; } int maxVal(int a, int b) { return a>b ? a : b; } int minVal(int a, int b) { return a < b ? a : b; }};#endif
阅读全文
0 0
- LintCode-乘积最大子序列
- LintCode -- 乘积最大子序列
- lintcode- 乘积最大子序列
- LintCode:乘积最大子序列
- 乘积最大子序列,lintcode
- lintcode--乘积最大子序列
- Lintcode 乘积最大子序列
- 乘积最大子序列-LintCode
- lintcode--乘积最大子序列
- lintCode【91】乘积最大子序列
- LintCode:M-乘积最大子序列
- [Lintcode]Maximum Product Subarray乘积最大子序列
- lintcode刷题——乘积最大子序列
- 最大乘积子序列
- 最大子序列乘积
- 乘积最大子序列
- 乘积最大子序列
- 乘积最大子序列
- I/O模式
- 上传文件
- 14:大象喝水
- C# WebApi 上传文件
- 2017暑假第二阶段第九场 总结
- 乘积最大子序列-LintCode
- 同步异步与阻塞非阻塞
- 【简趣学习文本挖掘】用Python带你走进神秘的“谍纸天眼”...
- DataTable搜索框、分页、页脚数据显示、显示数据多少的属性设置
- WebApi发送HTML表单数据:文件上传与多部分MIME
- C++笔记记录贴1
- MFC 中查看失败信息 GetLastError
- Android炫酷的效果
- Linux下启用RNDIS host端与device端