题目链接:https://leetcode.com/problems/house-robber/

题目:

You are a professional robber planning to rob houses along a street.
Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security system connected and it will automatically contact the police if two adjacent houses were broken into on the same night.Given a list of non-negative integers representing the amount of money of each house, determine the maximum amount of money you can rob tonight without alerting the police.

解题思路:
这题的考点是动态规划
动态规划一定要找递推公式!!!
1. 对这题来说,对每一家房子,在其前一家房子偷不偷的前提下,有两种可能的情况。
2. 前一家房子被偷了,它就不能再偷了。前一家房子没被偷,它可以被偷也可以选择不偷。
3. 可看出,每一个子问题都依赖于前一个子问题,同时每一个子问题都会产生至少一种情况(之多两种情况)。
4. 根据上述分析,得到递推公式:
money[i][0] = max(money[i - 1][0], money[i - 1][1])
上述公式表示,不偷第 i 家房子,当前最大收益就是前一家房子的最大收益,前一家房子可能被偷了,也可能没有被偷。
money[i][1] = money[i - 1][0] + nums[i]
上述公式表示,要偷第 i 家的房子,必须在不偷第 i-1 家房子的前提下,才能加上偷第 i 家获得的收益。

代码实现:

public class Solution {public int rob(int[] nums) {if(nums == null || nums.length == 0)return 0;int[] money = new int[2];money[0] = 0;money[1] = nums[0];for(int i = 1; i < nums.length; i ++) {int temp = money[0];money[0] = Math.max(money[0], money[1]);money[1] = temp + nums[i];}return money[0] > money[1] ? money[0] : money[1];}
}
69 / 69 test cases passed.
Status: Accepted
Runtime: 0 ms

198 House Robber相关推荐

  1. [dp]leetcode 198. House Robber

    输入:一个数组nums,每一个元素nums[i]表示第i个房间的价值. 输出:一个抢劫犯能抢到又不会被警察发现的最大价值. 规则:如果抢劫犯抢了相邻房间,那么报警装置就会触发,警察会得到通知. 分析: ...

  2. leetcode python3 简单题198. House Robber

    1.编辑器 我使用的是win10+vscode+leetcode+python3 环境配置参见我的博客: 链接 2.第一百九十八题 (1)题目 英文: You are a professional r ...

  3. 198. House Robber 的递归与动态规划实现方法(Python)

    目录 背景 实现方法 Step 1. 确定递归关系 Step 2. 递归方法实现 (top-down) Step 3. 递归方法 + 过程存储 实现 (top-down) Step 4. 迭代方法 + ...

  4. 198. House Robber(入室强盗)

    标签(空格分隔): leetcode dp You are a professional robber planning to rob houses along a street. Each hous ...

  5. LeetCode 198 House Robber(强盗盗窃最大值)(动态规划)(*)

    翻译 你是一个专业强盗,并计划沿街去盗窃每一个住户.每个房子都有一定量的现金,阻止你盗窃的唯一阻碍是相邻的两个房子之间有安全系统.一旦这两个房子同时被盗窃,系统就会自动联系警察.给定一系列非负整数代表 ...

  6. 198. House Robber(动态规划--房屋强盗)

    题目 You are a professional robber planning to rob houses along a street. Each house has a certain amo ...

  7. leetcode解题报告:198 House Robber

    问题描述: 一个小偷去一个街区偷东西,求偷得价值最大,唯一限制就是不能偷连续的两家,因为这样会触发警报. 建模: 给定一个列表,里面存着每家可以偷的价值,输出最大偷到的价值. 思路:动态规划 如果输入 ...

  8. LeetCode 198 House Robber Python

    题意:一组直线排列的房屋,一个小偷要进屋偷钱,如果小偷偷了相邻两座房屋就会触发报警系统,问在不触发报警系统的前提下小偷最多可以偷到多少钱. 难度:esay 思路:这是一道标准的动态规划问题,创建一个l ...

  9. 198. House Robber

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

最新文章

  1. 编译ARM平台的 QtEmbedded 的MySQL插件和移植MySQL到ARM开发板
  2. 常用各种芯片手册大全_【汇总】超全面!国内芯片60个细分领域知名代表企业...
  3. 2018蓝桥杯省赛---java---B---7(螺旋折线)
  4. python统计程序运行时间-如何方便地统计 Python 程序每一个函数、每一行代码执行所花的时间?...
  5. 语言孪生素数问题_刘建亚教授讲述“素数的故事”
  6. UE4 调试着色器编译过程
  7. 阿里巴巴发布第一台云电脑“无影” 可线上无限扩容升级
  8. docker-compose部署nacos 集群超过2个容器的问题
  9. 最长公共子序列和最长子字符串_python_算法与数据结构
  10. Delphi学习视频02
  11. 教你配置赏心悦目的开发神器 Atom-郭永峰-专题视频课程
  12. 他抛了27亿粒米粒儿近似计算出了圆周率
  13. 计算机维修5级,电脑芯片级维修教程
  14. Java小游戏象棋开发1-界面设计
  15. 情感分析与观点挖掘第五章笔记(上)/基于方面的情感分析/SentimentAnalysis-and-OpinionMining by Bing Liu
  16. Redis以及Jedis的GEO地图功能
  17. 泰拉瑞亚 Terraria Mac版
  18. outlook使用网易邮箱
  19. 大数据周会-本周学习内容总结04
  20. 2017.11.25 计算机一级,2017计算机一级MSOffice考试试题

热门文章

  1. 二、Activity 的启动模式
  2. 一篇文章让你全方位掌握git版本控制管理
  3. 回调函数介绍和使用方法以及使用例子
  4. c++ 回调函数示例
  5. java之《图书管理系统》庖丁解牛
  6. 复杂(一)——复杂性是什么
  7. android 仿蘑菇街效果,Vue项目-仿蘑菇街移动端Web开发
  8. Design--源自生活美学的色彩搭配网站(design-seeds)
  9. php有strock吗,HTML中stroke是什么意思?
  10. 学会System Generator(10)支持的MATLAB语法