mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2026-02-02 18:39:09 +08:00
Update
This commit is contained in:
@@ -99,17 +99,15 @@ for (int j = 0; j < 2 * k - 1; j += 2) {
|
||||
|
||||
第0天做第一次卖出的操作,这个初始值应该是多少呢?
|
||||
|
||||
首先卖出的操作一定是收获利润,整个股票买卖最差情况也就是没有盈利即全程无操作现金为0,
|
||||
此时还没有买入,怎么就卖出呢? 其实大家可以理解当天买入,当天卖出,所以dp[0][2] = 0;
|
||||
|
||||
从递推公式中可以看出每次是取最大值,那么既然是收获利润如果比0还小了就没有必要收获这个利润了。
|
||||
第0天第二次买入操作,初始值应该是多少呢?应该不少同学疑惑,第一次还没买入呢,怎么初始化第二次买入呢?
|
||||
|
||||
所以dp[0][2] = 0;
|
||||
第二次买入依赖于第一次卖出的状态,其实相当于第0天第一次买入了,第一次卖出了,然后在买入一次(第二次买入),那么现在手头上没有现金,只要买入,现金就做相应的减少。
|
||||
|
||||
第0天第二次买入操作,初始值应该是多少呢?
|
||||
所以第二次买入操作,初始化为:dp[0][3] = -prices[0];
|
||||
|
||||
不用管第几次,现在手头上没有现金,只要买入,现金就做相应的减少。
|
||||
|
||||
第二次买入操作,初始化为:dp[0][3] = -prices[0];
|
||||
第二次卖出初始化dp[0][4] = 0;
|
||||
|
||||
**所以同理可以推出dp[0][j]当j为奇数的时候都初始化为 -prices[0]**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user