股票的最大利润(买卖一次)

int[] a = {7,1,5,3,6,4}

 不是动态规划,没有状态转移方程。

第i日最大收益:d[i] = a[i]-min(a{0,i-1})
n个第i日构成的数组D[i],D[i]中最大值即为所求。

int getMaxProfit(int[] a,int len){

    int min = a[0];
    int[] D = new int[len];
    for(int i=1; i<len; i++){
        if(a[i-1]<min){
            min = a[i];
        }
        curMax = a[i] - min;
        D[i] = curMax;
    }
    int max = D[0];
    for(int i =0;i<len; i++){
        if(D[i]>max){
            max = D[i];
        }
    }
   delete[] D;
return max; }
原文地址:https://www.cnblogs.com/shijianchuzhenzhi/p/14887239.html