fucking-algorithm icon indicating copy to clipboard operation
fucking-algorithm copied to clipboard

一个方法团灭 LeetCode 打家劫舍问题 :: labuladong的算法小抄

Open labuladong opened this issue 3 years ago • 4 comments

文章链接点这里:一个方法团灭 LeetCode 打家劫舍问题

评论礼仪 见这里,违者直接拉黑。

labuladong avatar Feb 05 '22 07:02 labuladong

学到了!!

fzfzlfz avatar Apr 21 '22 02:04 fzfzlfz

学到了

cheng-miao avatar May 06 '22 02:05 cheng-miao

感谢东哥分享的文章,层次鲜明,难度递进,学到了很多东西。 关于打家劫舍2,个人觉得有一个更好理解的方案。因为不能同时抢第一间房子和最后一间房子,所以可以将问题看作是抢排成一排的前n-1间房子或是后n-1间房子的最值,即转化为打家劫舍1的两种情况,也就是东哥实际给出的解题代码。在东哥说明提出的三种情况与实际的解题代码存在冲突。而且只取后面两种情况的方式是错误的,力扣原题给出的案例nums = [2,3,2],取到的最值就在于第一间和最后一间都不抢的情况。

sadadasad avatar May 30 '22 09:05 sadadasad

滴滴滴打卡

LeeHaruYa avatar Jul 26 '22 07:07 LeeHaruYa

打家劫舍1 这个自顶向下的dp也不错的,也好理解,比递归简单点。 public int rob(int[] nums) { if (nums == null || nums.length == 0) return 0; if (nums.length == 1) return nums[0]; int[] dp = new int[nums.length]; dp[0] = nums[0]; dp[1] = Math.max(dp[0], nums[1]); for (int i = 2; i < nums.length; i++) { dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i]); } return dp[nums.length - 1]; }

Velliy avatar Aug 13 '22 04:08 Velliy