力扣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];
    }
}
相关推荐
来一碗刘肉面3 分钟前
平衡二叉树的删除
数据结构·算法
wabs6667 分钟前
关于二叉树【力扣199.二叉树的右视图的思考】
数据结构·c++·算法·leetcode·二叉树·层序遍历
a1879272183117 分钟前
【算法】动态规划第三篇:背包第一课——贪心之死与正序倒序开关
算法·leetcode·动态规划·贪心·dp·暴力·算法讲解
黄金龙PLUS26 分钟前
Xoodoo置换算法的优缺点
算法·网络安全·密码学·哈希算法·同态加密
Cccp.12330 分钟前
【leetcode】(四)排序算法汇总和链表
leetcode·链表·排序算法
杰克尼1 小时前
同城拼车项目面试问题_01
spring·面试·职场和发展
YonyouHRSaaS1 小时前
2026年AI招聘系统怎么选?AI面试功能怎么评估?
人工智能·面试·职场和发展·求职招聘·ai面试
LayZhangStrive1 小时前
数据结构与算法 - 堆排序
java·数据结构·算法·排序算法·堆排序·大根堆
residual_fan1 小时前
深度渐进收缩学习(DPSL):面向强噪声与类内分散的机械复合故障诊断方法
人工智能·算法·数据挖掘·数据分析
a187927218312 小时前
【算法】动态规划第五篇:区间 DP——从“看什么都像背包“到“最后戳谁“
算法·leetcode·动态规划·dp·区间·区间dp·算法讲解