我用java刷 leetcode 198. 打家劫舍
Posted 深林无鹿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我用java刷 leetcode 198. 打家劫舍相关的知识,希望对你有一定的参考价值。
这里有leetcode题集分类整理!!!
我的AC:
class Solution {
public int rob(int[] nums) {
int len = nums.length;
if (len == 1) return nums[0];
int[] dp = new int[len];
dp[0] = nums[0];
dp[1] = Math.max(nums[0], nums[1]);
for (int i = 2 ; i < len ; i ++) {
dp[i] = Math.max(dp[i - 2] + nums[i] , dp[i - 1]);
}
return dp[len - 1];
}
}
滚动数组做空间优化:
class Solution {
public int rob(int[] nums) {
int len = nums.length;
if (len == 1) return nums[0];
int first = nums[0];
int second = Math.max(nums[0], nums[1]);
for (int i = 2 ; i < len ; i ++) {
int tmp = Math.max(first + nums[i] , second);
first = second;
second = tmp;
}
return second;
}
}
以上是关于我用java刷 leetcode 198. 打家劫舍的主要内容,如果未能解决你的问题,请参考以下文章
leetcode 198. House Robber 打家劫舍(中等)
⭐算法入门⭐《动态规划 - 线性DP》中等01 —— LeetCode 198. 打家劫舍