编辑代码

#include <stdio.h>
#include <malloc.h>
#include <string.h>

 int max(int a,int b){
    return a>b?a:b;
}
int ffmin(int *prices,int n){
    int tmp=prices[0];
    for(int i=1;i<n;i++){
        if(prices[i]<tmp)
            tmp=prices[i];
    }
    return tmp;
}
int maxProfit(int* prices, int pricesLen ) {
    if(pricesLen==0||pricesLen==1)return 0;
    int *f=(int *)malloc(sizeof(int)*(pricesLen+1));
    f[0]=0;
    f[1]=0;

    for(int i=2;i<=pricesLen;i++){
        f[i]=max(prices[i-1]-ffmin(prices,i-1),f[i-1]);
    }
    return f[pricesLen];
}
int main(){
    int prices[]={8,9,2,5,4,7,1};
    printf("%d\n",maxProfit(prices,7));


    return 0;
}