力扣198. 打家劫舍

Problem: 198. 打家劫舍

文章目录

题目描述

思路

1.定义状态:dp[i]表示从第i个房子开始偷起可以偷得的最大金额数目;
2.状态转移:由于不能连续的偷相邻的两个房子,则为了使得从第i个房子开始偷起是最大金额则要判断
是从当前第i个房子开始偷(代码中表示为nums[i] + dp[i + 2]),还是不偷当前第i个房子,而是从第i + 1个房子开始偷(代码中表示为dp[i + 1])即最终得到dp[i] = max(dp[i + 1], nums[i] + dp[i + 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];
    }
}
相关推荐
暴风鱼划水20 小时前
算法题(Python)数组篇 | 4.长度最小的子数组
python·算法·力扣
gugugu.20 小时前
算法:二分算法类型题目总结---(含二分模版)
算法
大G的笔记本20 小时前
算法篇常见面试题清单
java·算法·排序算法
7澄120 小时前
深入解析 LeetCode 数组经典问题:删除每行中的最大值与找出峰值
java·开发语言·算法·leetcode·intellij idea
AI科技星21 小时前
宇宙的几何诗篇:当空间本身成为运动的主角
数据结构·人工智能·经验分享·算法·计算机视觉
前端小L21 小时前
二分查找专题(二):lower_bound 的首秀——精解「搜索插入位置」
数据结构·算法
老黄编程21 小时前
三维空间圆柱方程
算法·几何
xier_ran1 天前
关键词解释:DAG 系统(Directed Acyclic Graph,有向无环图)
python·算法
CAU界编程小白1 天前
数据结构系列之十大排序算法
数据结构·c++·算法·排序算法
好学且牛逼的马1 天前
【Hot100 | 6 LeetCode 15. 三数之和】
算法