public static int MaxProfit(int[] prices) { int priceSize = prices.Length; int [,] dp=new int[priceSize,2];//同一天有两种状态, [i,0]为第i天没有股票的利润,[i,1]为i天持有股票的利润 dp[0,0] = 0; dp[0,1] = -prices[0];//初始化,第一天没有进行股票交易为0,第一天买入股票,利润为-price[0]。 for (int i = 1; i < priceSize; i++) { dp[i,0] = Math.Max(dp[i - 1,0], dp[i - 1,1] + prices[i]);//i天m没有股票股票,利润为前一天卖出的利润,与i天卖出股票时利润的最大值 dp[i,1] = Math.Max(dp[i - 1,1], dp[i - 1,0] - prices[i]);//i天持有股票时的利润,为前一天持有股票时的利润,或者今天买入股票的利润的最大值。 } return dp[priceSize - 1,0]; }
标签:买卖,priceSize,int,股票,prices,动态,规划,dp,利润 From: https://www.cnblogs.com/Dongmy/p/18227785