maxProfit
来源:互联网 发布:大麦盒子电视直播软件 编辑:程序博客网 时间:2024/04/19 04:03
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int maxProfit(vector<int>&prices)
{
const int n=prices.size();
if(n<2)
return 0;
vector<int>f(n,0);
vector<int>g(n,0);
for(int i=1,valley=prices[0];i<n;++i)
{
valley=min(valley,prices[i]);
f[i]=max(f[i],prices[i]-valley);
}
for(int i=n-2,peak=prices[n-1];i>=0;--i)
{
peak=max(peak,prices[i]);
g[i]=max(g[i],peak-prices[i]);
}
int ret=0;
for(int i=0;i<n;++i)
ret=max(ret,f[i]+g[i]);
return ret;
}
int main()
{
int a[]={-2,4,3,1,-5,3,7,-6,3};
vector<int>v(a,a+sizeof(a)/sizeof(int));
cout<<maxProfit(v)<<endl;
return 0;
}
#include<algorithm>
#include<vector>
using namespace std;
int maxProfit(vector<int>&prices)
{
const int n=prices.size();
if(n<2)
return 0;
vector<int>f(n,0);
vector<int>g(n,0);
for(int i=1,valley=prices[0];i<n;++i)
{
valley=min(valley,prices[i]);
f[i]=max(f[i],prices[i]-valley);
}
for(int i=n-2,peak=prices[n-1];i>=0;--i)
{
peak=max(peak,prices[i]);
g[i]=max(g[i],peak-prices[i]);
}
int ret=0;
for(int i=0;i<n;++i)
ret=max(ret,f[i]+g[i]);
return ret;
}
int main()
{
int a[]={-2,4,3,1,-5,3,7,-6,3};
vector<int>v(a,a+sizeof(a)/sizeof(int));
cout<<maxProfit(v)<<endl;
return 0;
}
0 0
- maxProfit
- Codility-MaxProfit
- leetcode:maxprofit
- 7.1 MaxProfit
- codility MaxProfit
- LeetCode之maxProfit
- hdu 4512 吉哥系列故事——完美队形I(LICS)
- svn 常用命令
- 立体视觉——固定窗口的视差图计算
- 树莓派添加RTC时钟模块的方法
- 浅谈协方差矩阵
- maxProfit
- Android手机投影到电脑屏幕的神兵利器
- angularJS学习之路(六)---指令
- Android中多线程的用法
- cocos2d-x添加控制台日志输出
- POJ 1159 DP+滚动数组
- Java单元测试问题
- linux(centos)搭建SVN服务器
- C++virtual继承