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; }