题干:
给你一个整数数组 prices
,其中 prices[i]
表示某支股票第 i
天的价格。
在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。
返回 你能获得的 最大 利润 。
问题解读:
这道题是题号121的后续, 由于可以一直屯着不卖,所以每天的状态只有两种:
1.手里有股。2.手里没股。
状态图示:
一、定义状态:
-
没有持有股票的状态 (
dp[i][0]
):- 这种状态表示我们在第
i
天结束时没有股票,可能是我们在第i
天卖出了股票,或者我们之前就没有买过股票。 - 这个状态的最大利润可以通过以下两种情况得到:
- 前一天也没有持有股票,即
dp[i-1][0]
。 - 前一天持有股票,并在第
i
天卖出,即dp[i-1][1] + prices[i]
。
- 前一天也没有持有股票,即
- 这种状态表示我们在第