public static int rob(int[] nums) {
if (nums == null) {
return 0;
}
int n = nums.length;
if (n == 0) {
return nums[0];
}
int[] C = new int[n];
for (int i = 0; i < n; i++) {
if (i == 0) {
C[i] = nums[i];
}
if (i == 1) {
C[i] = Math.max(nums[0], nums[1]);
}
if (i >= 2) {
C[i] = Math.max(C[i - 1], nums[i] + C[i - 2]);
}
}
return C[C.length - 1];
}
本文介绍了一种使用动态规划算法解决房屋抢劫问题的方法。在该问题中,一个抢劫犯试图抢劫排列成一条直线的房屋,但为了避免警报,不能连续抢劫相邻的两座房屋。算法通过递推公式计算出在不连续抢劫房屋的情况下,能够获得的最大金额。
3010

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



