我用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. 打家劫舍

LeetCode 198. 打家劫舍c++/java详细题解

LeetCode 198. 打家劫舍

LeetCode 198. 打家劫舍

leetcode刷题目录