问题描述:给你一个已知的一串数组,例如2,1,4,3,8,7,6,10,-1,2,为每天股票的售出价格,要求先买入一次,然后再卖一次,求出能够获取的最大利润
(此题只要注意只能先买后卖这个次序即可),代码如下:
#include<iostream>
using namespace std;
void BuyStock(int *a,int size)
{
//思想:创建一个min存放访问过的最小值,如果在编译的过程中有更小的,则替换,再创建一个最大差值,如果有更好的一样替换
int min = 10000;
int MaxDValue = -1;
if(size <= 1)
return;
min = a[0];
for(int i = 1;i < size;++i)
{
if((a[i] - min) > MaxDValue)
MaxDValue = a[i] - min;
if(a[i] < min)
min = a[i];
}
cout<<MaxDValue<<endl;
}
int main()
{
int a[10] = {2,1,4,3,8,7,6,10,-1,2};
BuyStock(a,10);
return 0;
}