题目链接

关键词

{% label 动态规划 green %}、{% label 数组 blue %}

解析

  • dp[i]: 表示偷到第i家的最高金额
    • 偷第 i 家:dp[i] = dp[i - 2] + nums[i]
    • 不偷第 i 家:dp[i] = dp[i - 1]
  • 根据 dp[i] 的定义,则 dp[i] = Math.max(dp[i - 2] + nums[i - 2], dp[i - 1])
  • 为了方便下标,可以把 dp[] 的前两位空出来,就可以不用考虑下标越界的问题了

代码

相似题目

View dispatchTouchEventLeetcode_121.买卖股票的最佳时机
Loading...