股票的最大利润

股票的最大利润

一只股票在某些时间节点的价格{9,11,8,5,7,12,16,14},求在哪个时间锻买入和卖出,利润最大。

思路:找出数组中最大值和最小值问题。定义函数diff(i)为第i天卖出的最大利润,那么只需要在求第i天的时候记住前面i-1天的最小值。

参考代码:

root@gt:/home/git/Code# ./a.out max:11
root@gt:/home/git/Code# cat diff.c #include <stdio.h> 
int diff(int* num,int len)
{
    if(num == NULL || len < 2)
        return 0;
    int min = num[0];
    int max = num[1] - min;

    for(int i = 2;i < len;++i)
    {
        if(num[i - 1] < min)
            min = num[i - 1];

        int currdiff = num[i] - min;
        if(currdiff > max)
            max = currdiff;
    }
    return max;
}

int main()
{
    int num[] = {9,11,8,5,7,12,16,14};
    int res = diff(num,sizeof(num)/sizeof(int));
    printf("max:%d\n",res);
    return 0;
}

    原文作者:ailx10
    原文地址: https://zhuanlan.zhihu.com/p/34764710
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞