一个人知道未来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; }