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

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

示例 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 。

思路:动态规划方法求解,

子问题 dp[i] = max(dp[i-1],dp[i-2]+nums[i]),其中dp[i]表示偷盗第i家人家时最多能偷多少

class Solution {
public:int rob(vector<int>& nums) {int n = nums.size();if(n==0)return 0;else if(n==1)return nums[0];else if(n==2)return max(nums[0],nums[1]);int* dp = new int[n];dp[0] = nums[0];dp[1] = max(nums[0],nums[1]);for(int i=2;i<n;++i){dp[i] = max(dp[i-1],dp[i-2]+nums[i]);}return dp[n-1];}
};

打家劫舍—leetcode198相关推荐

  1. 【代码随想录】-动态规划专题

    文章目录 理论基础 斐波拉契数列 爬楼梯 使用最小花费爬楼梯 不同路径 不同路径 II 整数拆分 不同的二叉搜索树 背包问题--理论基础 01背包 二维dp数组01背包 一维数组(滚动数组) 装满背包 ...

  2. 37预备2—leetcode198打家劫舍

    如果你是一个强盗,正准备抢劫一条街道,这条街道上装有互联监视系统,也就是如果连续抢劫两家相邻的商店就会引发报警.你如何从这条街道盗取最大收益.给定一列整数表示 每家商店的价值,在不能取相邻两数的情况下 ...

  3. LeetCode-198. 打家劫舍

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

  4. leetcode198 打家劫舍

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

  5. Leetcode--198. 打家劫舍

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

  6. Leetcode_打家劫舍三道题(动态规划总结)

    Leetcode_打家劫舍三道题(动态规划总结) 分类专栏: Leetcode # 动态规划 文章标签: 动态规划 leetcode 算法 LeetCode198 打家劫舍 leetCode213 打 ...

  7. [JS][dp]题解 | #打家劫舍(一)#

    题解 | #打家劫舍(一)# 题目链接 打家劫舍(一) 题目描述 描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家, ...

  8. house robber java_java之 ------------[LeetCode] House Robber 打家劫舍||

    做完打家劫舍后我发现自己动态规划方面处理问题的能力,终于迎来了开篇,虽然打家劫舍是在我看网上的别的人做的,然后自己理解的,但是我知道我再遇到这类题不会再手足无措了,隔了两天再来挑战,我看看自己的动态规 ...

  9. LeetCode-动态规划-213. 打家劫舍 II

    213. 打家劫舍 II 思路:考虑三种情况注释代码中 class Solution {public:int rob(vector<int>& nums) {if(nums.emp ...

最新文章

  1. 【机器学习】一文速览机器学习的类别(Python代码)
  2. linux 内存使用原理,linux中内存使用原理
  3. PHP之常用设计模式
  4. B站就机房服务器故障道歉;罗永浩否认将启动自动驾驶项目;​亚马逊收购 Facebook 卫星互联网团队|极客头条...
  5. 怎么查看linux硬盘多路径,linux下磁盘多路径
  6. Java千百问局部变量、类变量、实例变量有什么区别
  7. tomcat多域名配置
  8. 【干货篇】bilibili:基于 Flink 的机器学习工作流平台在 b 站的应用
  9. AndroidQ(10.0) MTK 开机 Logo 动态替换
  10. Mac Excel 次坐标轴/双坐标轴/柱状图+折线图
  11. 计算机控制点火系统如何控制点火提前角,点火提前角有什么控制
  12. SCADA系统资料整理-概论
  13. 微信小程序之生成海报保存本地
  14. 希腊字母渊源、发展及字母的读法
  15. 基于Python的双USB摄像头实时预览保存软件
  16. 长尾理论,长尾示意图,读书笔记
  17. returned a response status of 405 Method Not Allowed
  18. 【PERMUT】函数使用技巧
  19. 计算机出现蓝屏怎么解决,电脑出现蓝屏,什么原因,怎么办?
  20. Android 微信支付配置流程

热门文章

  1. moment 时间格式化
  2. 随机变量的分布函数-定义域问题
  3. php大并发 大流量 大存储解决方案
  4. R语言处理1975-2011年的人口信息
  5. Python学习之 !/usr/bin/python 和 !/usr/bin/env python区别
  6. 《Go语言实战》摘录:6.5 并发 - 通道
  7. JavaScript技巧
  8. 第二百三十一天 how can I 坚持
  9. 解决Flex/Flash跨域访问出现的安全沙箱问题
  10. asp.net 2.0 中引用Web.config内的连接字符串的方法