一个人知道未来n天的每天股票的价格,请你给出一个算法,使得这个人从哪天买入,哪天卖出能获得最大的收益。
问题实际上就是求一个数组后面元素减前面元素的最大值
#include <stdio.h>
#include <stdlib.h>
int findMaxDiff(int a[], int len)
{
int i = 0;
int minLeft = a[0];
int max = a[1] - a[0];
for(int i = 2; i < len; i++)
{
if(a[i - 1] < minLeft)
{
minLeft = a[i-1];
}
if(a[i] - minLeft > max)
{
max = a[i] - minLeft;
}
}
return max;
}
int main()
{
int a[7] = {4, 4, 2, 14, 1, 2, 15};
printf("%d\n", findMaxDiff(a, 7));
return 0;
}