198. 打家劫舍

——————————————————————————————————————
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。

示例 1:

输入: [1,2,3,1]
输出: 4
解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。
偷窃到的最高金额 = 1 + 3 = 4 。
示例 2:

输入: [2,7,9,3,1]
输出: 12
解释: 偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。
偷窃到的最高金额 = 2 + 9 + 1 = 12 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/house-robber
——————————————————————————————————————
1、动态规划
理解题目意思,不能盗取相邻两个房间的金额,所以假设n间房子可盗取的最大金额,要么是n-1间房子可盗取的最大金额,要么是n-2间房子可盗取的最大金额加上第n间房子的金额的总和的最大值。根据此思想,使用动态规划,使用C++编程:

class Solution {
public:int rob(vector<int>& nums) {int length = nums.size();if(length==0)return 0;vector<int> sum;     #用于存放间房子可盗取的最大金额的容器sum.push_back(0);      #容器的第一个变量赋值为0,方便下面的迭代sum.push_back(nums[0]);      #将第一个房子可盗取的最大金额放进容器中for(int i=1;i<length;i++){sum.push_back(max(nums[i]+sum[i-1],sum[i]));     #不断迭代,计算第n间房子可盗取的最大金额}return sum[length];}
};

leetcode - 198. 打家劫舍相关推荐

  1. leetcode 198打家劫舍

    leetcode 198打家劫舍 题目链接:打家劫舍 题目描述:你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间 ...

  2. LeetCode 198. 打家劫舍(DP)

    1. 题目 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给 ...

  3. 102. Leetcode 198. 打家劫舍 (动态规划-打家劫舍)

    步骤一.确定状态: 1.确定原问题中变化的变量个数 2.考虑最后一步: 对于第N间房屋,有两个选项: 偷窃第N间房屋,那么就不能偷窃第N−1间房屋,偷窃总金额为前N-2间房屋的最高总金额与第N间房屋的 ...

  4. Leetcode 198.打家劫舍 (每日一题 20210622)

    你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警.给定一个代表每个 ...

  5. leetcode 198. 打家劫舍(最简单的动态规划问题)

    题目 思路 经典的动态规划问题 第 i 家:偷,或者不偷 -- 从这两种选择中,选择最大值. 1.如果 不偷,则等于 前 i-1 家最大 2.如果 偷,则等于 前 i-2 家最大 + 第 i 家 题解 ...

  6. [leetcode] 198.打家劫舍

    你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定一个代表每 ...

  7. leetcode 198. 打家劫舍 思考分析

    目录 1.题目 2.求解思路 3.代码 1.题目 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同 ...

  8. LeetCode 198 打家劫舍

    题目描述 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻 的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警.给定 ...

  9. LeetCode 198. 打家劫舍(动态规划)

    题目描述 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定 ...

最新文章

  1. math range error
  2. php里面的log是什么文件夹,用PHP生成自己的LOG文件
  3. 一文读懂HttpServletRequest
  4. 中粮集团对话农民丰收节交易会-万祥军:订单农业丰收经
  5. 337. House Robber III 打家劫舍 III
  6. linux 查看强制位,linux强制位与冒险位
  7. JS 将有规律的数组,转换成对象数组
  8. 移除UTF-8文件头的BOM
  9. 动态规划--重拾我的“背包”
  10. 用spss做哑变量(含spss安装教程)
  11. 大学生网页作业成品——基于HTML网上书城项目的设计与实现
  12. appcan与java_AppCan试用体验
  13. 调度站入口有n节软席和硬席车厢,将所有软席调到硬席之前
  14. LINGO Error Code 122 和 237 出现原因及其解决方法
  15. GitHub中Organization的Member邀请和clone代码库
  16. 来自量子世界的新技术---算法篇
  17. java编译字节码转化程序下载_编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )...
  18. 气动调节阀故障要怎么处理?
  19. 小狐狸 metamask 私钥
  20. inmp构架搭建Wordpress博客

热门文章

  1. 面试官系统精讲Java源码及大厂真题 - 25 整体设计:队列设计思想、工作中使用场景
  2. 文档预览 OfficeWebViewer:在浏览器中查看Office文档
  3. DreamFactory入门指南
  4. 容器编排技术 -- Kubernetes kubectl run 命令详解
  5. 容器编排技术 -- Kubernetes 使用 PodPreset 将信息注入 Pods
  6. 安装RHEL 7.5 Server版本(RedHat 7.5 Server) 图文教程
  7. C语言,利用const常量解决圆的体积和面积。
  8. 痞子衡嵌入式:单片机AI的春天已来,ARM Cortex-M55发布了
  9. Python中68个内置函数的总结
  10. javascript指南_JavaScript指南