示例 1输入[7,1,5,3,6,4]输出5解释在第 2 天股票价格 1的时候买入在第 5 天股票价格 6的时候卖出最大利润 6-1 5 。 注意利润不能是 7-1 6, 因为卖出价格需要大于买入价格同时你不能在买入前卖出股票。示例 2输入prices [7,6,4,3,1]输出0解释在这种情况下, 没有交易完成, 所以最大利润为 0。int min(int a,int b){ return ab?a:b; } int max(int a,int b){ return ab?a:b; } int maxProfit(int* prices, int pricesSize) { if(pricesSize1) return 0; int min_price prices[0]; int profit 0;//dp[0] for(int i1;ipricesSize-1;i){ min_pricemin(min_price,prices[i]); profit max(profit,prices[i]-min_price);//dp[1] max(dp[0],price[1]-minprice) } return profit; } ///dp[i] 表示前 i 天的最大利润因为我们始终要使利润最大化则 ///dp[i]max(dp[i−1],prices[i]−minprice)