代码随想录算法训练营第50天|动态规划part11

8.16周三

  •  123.买卖股票的最佳时机III  
  •  188.买卖股票的最佳时机IV 

 详细布置 

 123.买卖股票的最佳时机III  

题目:最多买卖两次

题解:

1、

dp[i][0]没有操作 (其实我们也可以不设置这个状态)

dp[i][1]第一次持有股票

dp[i][2]第一次不持有股票

dp[i][3]第二次持有股票

dp[i][4]第二次不持有股票

2、

达到dp[i][1]状态,有两个具体操作:

  • 操作一:第i天买入股票了,那么dp[i][1] = dp[i-1][0] - prices[i]
  • 操作二:第i天没有操作,而是沿用前一天买入的状态,即:dp[i][1] = dp[i - 1][1]

 188.买卖股票的最佳时机IV  

题目:2次买卖变为最多k次买卖

题解:

1、三维数组:

dp[i][j][0]第j次持有股票

dp[i][j][1]第j次不持有股票

2、两重循环

你可能感兴趣的:(动态规划,算法)