买卖股票的最佳时机II
思路
本題和121. 買賣股票的最佳時機的唯一區別本題股票可以買賣多次了(注意只有一只股票,所以再次購買前要出售掉之前的股票)
這里重申一下dp數組的含義:
dp[i][0] 表示第i天持有股票所得現金。
dp[i][1] 表示第i天不持有股票所得最多現金
如果第i天持有股票即dp[i][0], 那么可以由兩個狀態推出來
第i-1天就持有股票,那么就保持現狀,所得現金就是昨天持有股票的所得現金 即:dp[i - 1][0]
第i天買入股票,所得現金就是昨天不持有股票的所得現金減去 今天的股票價格 即:dp[i - 1][1] - prices[i]
注意這里和121. 買賣股票的最佳時機唯一不同的地方,就是推導dp[i][0]的時候,第i天買入股票的情況。
在121. 買賣股票的最佳時機中,因為股票全程只能買賣一次,所以如果買入股票,那么第i天持有股票即dp[i][0]一定就是 -prices[i]。
而本題,因為一只股票可以買賣多次,所以當第i天買入股票的時候,所持有的現金可能有之前買賣過的利潤。
那么第i天持有股票即dp[i][0],如果是第i天買入股票,所得現金就是昨天不持有股票的所得現金 減去 今天的股票價格 即:dp[i - 1][1] - prices[i]
在來看看如果第i天不持有股票即dp[i][1]的情況, 依然可以由兩個狀態推出來
第i-1天就不持有股票,那么就保持現狀,所得現金就是昨天不持有股票的所得現金 即:dp[i - 1][1]
第i天賣出股票,所得現金就是按照今天股票佳價格賣出后所得現金即:prices[i] + dp[i - 1][0]
總結
以上是生活随笔為你收集整理的买卖股票的最佳时机II的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 买卖股票最佳时机I
- 下一篇: 买卖股票的最佳时机III