代码随想录算法训练营第四十九天 |121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II

62 阅读1分钟

代码随想录算法训练营第四十九天 |121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II

121. 买卖股票的最佳时机

题目链接:121. 买卖股票的最佳时机

  • dp含义:dp[i][0]持有股票的最大利润,dp[i][1]不持股最大金额

  • 递推公式:

    • i持有,i-1不持有: dp[i][0] = Math.max(dp[i - 1][0], -prices[i])
    • i不持有,i-1持有:dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] + prices[i])
  • -pricesp[i]是因为初始值是0,且只能买一次股票

122. 买卖股票的最佳时机 II

题目链接:122. 买卖股票的最佳时机 II

  • 递推公式:

    • i持有,i-1不持有: dp[i][0] = Math.max(dp[i - 1][0], dp[i - 1][1] - prices[i]) 前一天不持股的最大现金
    • i不持有,i-1持有:dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] + prices[i])