力扣198. 打家劫舍

Problem: 198. 打家劫舍

文章目录

题目描述

思路

1.定义状态:dpi表示从第i个房子开始偷起可以偷得的最大金额数目;
2.状态转移:由于不能连续的偷相邻的两个房子,则为了使得从第i个房子开始偷起是最大金额则要判断
是从当前第i个房子开始偷(代码中表示为numsi + dpi + 2),还是不偷当前第i个房子,而是从第i + 1个房子开始偷(代码中表示为dpi + 1即最终得到dpi = max(dpi + 1, numsi + dpi + 2)

复杂度

时间复杂度:

O ( n ) O(n) O(n);其中 n n n为数组nums的长度

空间复杂度:

O ( n ) O(n) O(n)

Code

java 复制代码
class Solution {
    /**
     * Get the maximum amount
     *
     * @param nums Given array(Store the amount of each house)
     * @return int
     */
    public int rob(int[] nums) {
        int n = nums.length;
        int[] dp = new int[n + 2];
        for (int i = n - 1; i >= 0; --i) {
            dp[i] = Math.max(dp[i + 1], nums[i] + dp[i + 2]);
        }
        return dp[0];
    }
}
相关推荐
梓䈑2 小时前
【算法题攻略】BFS 解决FloodFill 算法、最短路问题、多源BFS 和 拓扑排序
c++·算法·宽度优先
Adios7945 小时前
设置交集大小至少为2
数据结构·算法·leetcode
来一碗刘肉面11 小时前
栈的应用(表达式求值)
数据结构·算法
xiaowang1234shs12 小时前
怪兽轻断食技术深度测评:从断食计时引擎到AI识别算法的工程实践解析
数据库·人工智能·算法·macos·机器学习·p2p·visual studio
小果因子实验室12 小时前
量化研究--策略迁移算法1研究
算法
Web极客码13 小时前
如何用三段式确定性剪枝,为 LLM Agent 砍掉 35% 的 Token 成本?
服务器·人工智能·算法·机器学习
程序猿乐锅13 小时前
【数据结构与算法 | 第六篇】力扣1109,1094差分数组
java·算法·leetcode
wabs66613 小时前
关于图论【广度优先搜索的理论基础】
算法·图论·宽度优先
孤魂23313 小时前
逻辑回归算法
算法·机器学习·逻辑回归