题目链接: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;
}
}
本文详细解析了LeetCode上的打家劫舍II问题,这是一个经典的动态规划问题,但比第一部分复杂,因为房子形成了一个环形。文章提供了完整的Java代码实现,展示了如何通过动态规划解决这个问题,包括如何处理环形条件限制。
356

被折叠的 条评论
为什么被折叠?



