题目链接:. - 力扣(LeetCode)
代码如下:
打家劫舍问题需要注意相邻房子不能偷,因此在偷与不偷的选择上可以归类为:
偷当前(i)的房子,则子问题变为前i-2个房子的偷取金额;
不偷当前(i)的房子,则子问题变为前i-1个房子的偷取金额,
为了避免超出range边界,将减法改为加法,则偷的选择就是整体加2,因为正常nums的范围是[0, n-1], 加2后就是n+1,因此最后return n+1,代表取值范围。
题目链接:. - 力扣(LeetCode)
打家劫舍Ⅱ与Ⅰ类似,只是变成了环,因此需要考虑的是第一个要不要偷,偷了就是第三个到倒数第二个无环情况要不要偷,不偷第一个就是第二个到最后一个要不要偷,套用第一题的代码,代码如下:
题目链接:. - 力扣(LeetCode)
第三题同样改思路为偷与不偷的思路。