网址:https://leetcode.com/problems/house-robber-ii/
因为房子是环形排列的,所以第一个房子和最后一个房子是相邻关系。
于是我们就在House Robber的基础上稍加修改即可:
- 打劫范围为第一间房子到倒数第二间房子
- 打劫范围为第二件房子到最后一间房子
选择两者中较大者即是答案!
class Solution { public int rob(int[] nums) { if(nums.length == 1) return nums[0]; return Math.max(rob(nums, 0, nums.length-1), rob(nums, 1, nums.length)); } public int rob(int[] nums, int begin, int end) { int pre1 = 0; int pre2 = 0; int temp = 0; for(int i=begin; i<end; i++) { temp = Math.max(nums[i] + pre2, pre1); pre2 = pre1; pre1 = temp; } return temp; } }