文章目录

  • 系列文章目录
  • 前言
  • 题录
    • 198. 打家劫舍
    • 213. 打家劫舍 II

系列文章目录

一、 数组类型解题方法一:二分法
二、数组类型解题方法二:双指针法
三、数组类型解题方法三:滑动窗口
四、数组类型解题方法四:模拟
五、链表篇之链表的基础操作和经典题目
六、哈希表篇之经典题目
七、字符串篇之经典题目
八、字符串篇之 KMP
九、解题方法:双指针
十、栈与队列篇之经典题目
十 一、栈与队列篇之 top-K 问题
十 二、二叉树篇之二叉树的前中后序遍历
十 三、二叉树篇之二叉树的层序遍历及相关题目
十 四、二叉树篇之二叉树的属性相关题目
十 五、 二叉树篇之二叉树的修改与构造
十 六、 二叉树篇之二叉搜索树的属性
十 七、二叉树篇之公共祖先问题
十 八、二叉树篇之二叉搜索树的修改与构造
十 九、回溯算法篇之组合问题
二 十、回溯算法篇之分割、子集、全排列问题
二十一、贪心算法篇之入门题目
二十二、贪心算法篇之进阶题目
二十三、动态规划篇之基础题目
二十四、动态规划篇之背包问题:01背包
二十五、动态规划篇之背包问题:完全背包
更新中 …


前言

刷题路线来自 :代码随想录

题录

198. 打家劫舍

Leetcode 链接

题解:
dp[i]: 偷到 i 房间盗窃的最大金额
递推公式: dp[i] = max(不偷 i 房间,偷 i 房间) = Math.max(dp[i - 1], dp[i - 2] + nums[i - 1]);

class Solution {public int rob(int[] nums) {int len = nums.length;int[] dp = new int[len + 1];dp[1] = nums[0];for (int i = 2; i <= len; i++) {dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i - 1]);}return dp[len];}
}

213. 打家劫舍 II

Leetcode 链接

题解:
不同于上题的是最后一个房间与第一个房间相连,也就是者两个房间只能偷一个,我们可以分两个区间偷

class Solution {public int rob(int[] nums) {int len = nums.length;if (len == 1) return nums[0];return Math.max(robRange(Arrays.copyOfRange(nums, 0, len - 1)), robRange(Arrays.copyOfRange(nums, 1, len)));}public int robRange(int[] nums) {int len = nums.length;int[] dp = new int[len + 1];dp[1] = nums[0];for (int i = 2; i <= len; i++) {dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i - 1]);}return dp[len];}
}

Leetcode 刷题笔记(二十六) ——动态规划篇之经典问题:打家劫舍相关推荐

  1. Leetcode刷题笔记:栈与队列篇

    基础知识 栈和队列的原理大家应该很熟悉了,队列是先进先出,栈是先进后出. 如图所示: 那么我这里再列出四个关于栈的问题,大家可以思考一下.以下是以C++为例,使用其他编程语言的同学也对应思考一下,自己 ...

  2. 【leetcode刷题笔记】动态规划

    #[leetcode刷题笔记]动态规划 石子游戏 public boolean stoneGame(int[] piles) {int N = piles.length;// dp[i][j] is ...

  3. LeetCode刷题笔记-动态规划-day4

    文章目录 LeetCode刷题笔记-动态规划-day4 55. 跳跃游戏 1.题目 2.解题思路 3.代码 45. 跳跃游戏 II 1.题目 2.解题思路 3.代码 LeetCode刷题笔记-动态规划 ...

  4. 刷题笔记(十四)--二叉树:层序遍历和DFS,BFS

    目录 系列文章目录 前言 题录 102. 二叉树的层序遍历 BFS DFS_前序遍历 107. 二叉树的层序遍历 II BFS DFS 199. 二叉树的右视图 BFS DFS 637. 二叉树的层平 ...

  5. LeetCode刷题笔记(算法思想 四)

    LeetCode刷题笔记(算法思想 四) 七.动态规划 斐波那契数列 70. 爬楼梯 198. 打家劫舍 213. 打家劫舍 II 信件错排 母牛生产 矩阵路径 64. 最小路径和 62. 不同路径 ...

  6. LeetCode刷题笔记2——数组2

    LeetCode刷题笔记2--数组2 重塑数组 题目 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原 ...

  7. LeetCode刷题笔记汇总

    LeetCode刷题笔记汇总 第一次刷LeetCode写的一些笔记. 1.两数之和 3.无重复字符的最长子串 15.三数之和 18.四数之和 19.删除链表的倒数第 N 个结点 20.有效的括号 21 ...

  8. leetcode刷题笔记——二分查找

    leetcode刷题笔记--二分查找 目前完成的贪心相关的leetcode算法题序号: 中等:80,81 困难:4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com ...

  9. 卷进大厂系列之LeetCode刷题笔记:二分查找(简单)

    LeetCode刷题笔记:二分查找(简单) 学算法,刷力扣,加油卷,进大厂! 题目描述 涉及算法 题目解答 学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给定一个 n 个元素有序的(升序) ...

  10. 小何同学的leetcode刷题笔记 基础篇(01)整数反转

    小何同学的leetcode刷题笔记 基础篇(01)整数反转[07] *** [01]数学取余法*** 对数字进行数位操作时,常见的方法便是用取余的方法提取出各位数字,再进行操作 操作(1):对10取余 ...

最新文章

  1. 用Response.Write和Page.RegisterStartupScript显示的提示框有什么区别
  2. python每天学习30分钟系列
  3. Android 面试题集整理
  4. app vue 真机运行_uni-app黑魔法:小程序自定义组件运行到H5平台
  5. vue 前端商城框架_前端工程师要掌握几个Vue框架
  6. 线性代数拾遗(一):线性方程组、向量方程和矩阵方程
  7. 汇编语言:编程,将datasg段中的每个单词改为大写字母
  8. andriod手机客户端自动化测试工具整理
  9. 分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群
  10. etcd-java使用
  11. Thread.Sleep太久,界面卡死
  12. FPGA同步复位异步复位
  13. Fluentd日志采集使用教程
  14. 深入理解MyBatis缓存
  15. XML 用户界面语言(XUL)开发简介
  16. 彻底带你入门RDS数据库「玩转华为云」
  17. 小米手机第三方卡刷软件_小米手机通用详细图形刷机教程(四): 刷入第三方系统...
  18. 学计算机的什么是镜像,一、什么是windows镜像?什么是Ghost?它们有什么优缺点?...
  19. python大数据读取分析_python如何读取大数据
  20. 整理的金蝶云苍穹初级练习题

热门文章

  1. 深度学习TF—5.tf.kears高层API
  2. 机器学习基础算法22-提升理论-GBDT、XGBoost、Adaboost、方差与偏方
  3. 机器学习算法基础6-模型保存与加载、逻辑回归、Kmeans(聚类)
  4. Qcon大会上电子工业出版社博文视点提供全程技术图书支持
  5. C/C++集成开发环境搭建
  6. multisim安装后无法连接数据库_Kepserver连接Mysql教程(一)MySQL5.5数据库安装
  7. mysql 数据类型大全_MySQL 数据类型_mysql数据类型大全
  8. 软件测试--04测试用例/测试方法
  9. 7-7 评分规则 (5 分)
  10. HTML5 — 知识篇总结《II》【HTML5大力支持的语义化思想与规范】