问题:易水寒
题目描述
“别人总说我瓜,其实我一点也不瓜,大多数时候我都机智的一批“
最近家里有矿的都去玩一款叫作易水寒的游戏了。聪明的宝儿姐发现易水寒里面的壕真是太多了,他们可以直接用RMB购买游戏币。但是这个游戏币的价格是会浮动的,于是宝儿姐就从某易内部获得了将来n天的游戏币价格,想要以此
来赚取差价。但是呢,宝儿姐又太穷了,不管价格怎么浮动,相对宝儿姐来说她都只能买得起一枚游戏币,请你帮宝儿姐计算一下她只进行一次买入卖出的话最多能赚取的差价是多少吧。(卖出时间应在买入时间之后)
输入
第一行一个测试实例case(case<=5)
第二行一个整数n,代表获得的将来n天的游戏币价格。(n<=1e5)
接下来一行n个整数price,代表n天游戏币的价格。(0<=price<=1000)
输出
Case #x: y, x代表测试实例数,y代表宝儿姐进行一次买入和卖出能赚取的最大差价。
样例输入
1 5 5 5 5 7 5
样例输出
Case #1: 2
这个代码简直nice啊,简单的一批,我之前还用了动态规划,搞了一大堆。。。
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#include<map>
#include<cstdio>
#include<string>
#include<limits>
using namespace std;
int main()
{
int t;
cin >> t;
int jj = 1;
while (t--)
{
int k,n, ans = 0, temp;
cin >> n;
for (int i = 0; i < n; i++)
{
scanf("%d", &k);
if (i == 0) temp = k;
if (k - temp >= 0) ans = max(ans, k - temp);
if (k < temp) temp = k;
}
cout <<"Case #" << jj++<<": "<< ans << endl;
}
return 0;
}