1 问题
求股票的最大利润,简言之就是求一个数组里面元素差的最大值,要求时间复杂度O(n)
2 代码实现
#include <stdio.h> #include <stdlib.h> int maxDiff(int *number, int length) { if (NULL == number || length < 2) { return 0; } int min = number[0]; int max = number[0]; for (int i = 1; i < length; ++i) { if (min > number[i]) { min = number[i]; } if (max < number[i]) { max = number[i]; } } return max - min; } int main() { int a[] = {9, 11, 8, 5, 7, 12, 16, 14}; int value = maxDiff(a, sizeof(a) / sizeof(int)); printf("value id %d\n", value); return 0; }
3 运行结果
value id 11