力扣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];
    }
}
相关推荐
Shan12051 分钟前
算法案例精讲:连接所有点的最小费用
算法
迈巴赫车主8 分钟前
蓝桥杯21241灯塔java
java·开发语言·数据结构·算法·职场和发展·蓝桥杯·动态规划
wabs6669 分钟前
关于贪心算法【968.监控二叉树】的想法
算法·贪心算法
酉鬼女又兒13 分钟前
零基础入门计算机网络可靠传输:从基本概念到三大实现机制(停止 - 等待 / 回退 N 帧 / 选择重传)全解析
网络·网络协议·计算机网络·考研·职场和发展·计算机外设·求职招聘
め.21 分钟前
GJK+EPA算法
算法
木井巳23 分钟前
【DFS解决floodfill算法】岛屿数量
java·算法·leetcode·深度优先
好评笔记1 小时前
深度学习面试八股——循环神经网络RNN
人工智能·rnn·深度学习·神经网络·算法·机器学习·aigc
凯瑟琳.奥古斯特1 小时前
力扣1003题C++解法详解
开发语言·c++·算法·leetcode·职场和发展
计算机安禾1 小时前
【算法分析与设计】第48篇:流算法与数据概要技术
java·服务器·网络·数据库·算法
hunterkkk(c++)1 小时前
SPFA最短路径算法(c++)
java·c++·算法