题目链接:https://leetcode-cn.com/problems/house-robber-ii/
本题与 打家劫舍I相比 多了条件就是 环形相连,意味着第一个和最后一个 ,也只能选择其中之一。
class Solution {
public int rob(int[] nums) {
if(nums.length == 0 || nums == null){
return 0;
}
int len = nums.length;
if(len == 1){
return nums[0];
}
return Math.max(getMax(nums,0,len-2),getMax(nums,1,len-1));
}
public int getMax(int[] nums,int first,int end){
int p1=0,p2=0;
for(int i = first; i <= end; i++){
int cur = Math.max(p1,p2+nums[i]);
p2=p1;
p1=cur;
}
return p1;
}
}