121. 买卖股票的最佳时机
下面的递推式保证了只买一次。
dp[i][0]=Math.max(dp[i-1][0],-prices[i]);
122.买卖股票的最佳时机II
下面的递推式可以买卖多次。
dp[i][0]=Math.max(dp[i-1][0],dp[i-1][1]-prices[i]);
123.买卖股票的最佳时机III
思路:这道题最多可以买卖两次,所以会产生五种状态:
1.未曾买入的初始状态
2.第一次持有股票的状态
3.第一次卖出后不持有股票的状态
4.第二次持有股票的状态
5.第二次卖出后不持有股票的状态
dp[i][j]中,j表示各种状态,i表示第几天,dp表示剩余的最大现金。