题目描述
用户输入n,随后输入n个整数分别代表每一天的股票的价格(买入或卖出价格一样)
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
样例输入输出
样例输入
5
4 2 5 9 8
样例输出
7
代码描述
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[10];
int n;
while(~scanf("%d",&n))
{
for(int i=0; i<n; i++)
scanf("%d",&a[i]);
int mins=a[0];
int dp[10],max1=0;
dp[0]=0;
// dp[i]表示在以a[i]结尾的对应的最高收入
// 0~i-1这一段时间内投资,i这一天可以得到的最大收入
for(int i=1; i<n; i++)
{
if(a[i]<mins)
{
dp[i]=dp[i-1];
mins=a[i];
}
else
{
dp[i]=a[i]-mins;
}
}
for(int i=0; i<n; i++)
{
if(dp[i]>max1)
{
max1=dp[i];
}
}
printf("%d\n",max1);
}
}