题目:

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.

假设你是一个专业抢劫犯,计划抢劫一条街道的房子。每个房子内都有一定数量的钱,唯一限制你抢劫的是每相邻的两个房子都有安保系统连接。如果两个相邻的房子都被破门而入的话,安保系统会自动报警。

有一组非负整数代表每个房子内的钱数,判断如何在不惊动警察的情况下可以抢劫的最多钱数。

思路:

动态规划:假设 f [ i ] 表示到第 i 个房子抢到的钱,则可得到状态转移方程为:f [ i ] = max( f [ i - 2 ] + nums [ i ] , f [ i - 1 ]).

代码:

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

优化空间复杂度:

class Solution {
public:int rob(vector<int>& nums) {int len = nums.size();int f0 = 0 , f1 = 0 , f2 = 0;for(int i = 0 ; i < len ; i++){f2 = max(f0 + nums[i] , f1);f0 = f1 ; f1 = f2;}return f2;}
};

LeetCode OJ 之 House Robber(抢劫犯)相关推荐

  1. LeetCode OJ 之 House Robber II (抢劫犯 - 二)

    题目: Note: This is an extension of House Robber. After robbing those houses on that street, the thief ...

  2. LeetCode OJ -- Binary Tree Paths

    http://blog.ubooksapp.com/ 标签(空格分隔): LeetCode OJ BinaryTree Given a binary tree, return all root-to- ...

  3. LeetCode OJ:Valid Anagram(有效字谜问题)

    Given two strings s and t, write a function to determine if t is an anagram of s. For example, s = & ...

  4. Leetcode题目:House Robber II

    题目: Note: This is an extension of House Robber. After robbing those houses on that street, the thief ...

  5. 【LeetCode OJ 136】Single Number

    题目链接:https://leetcode.com/problems/single-number/ 题目:Given an array of integers, every element appea ...

  6. LeetCode OJ -Happy Number

    题目链接:https://leetcode.com/problems/happy-number/ 题目理解:实现isHappy函数,判断一个正整数是否为happy数 happy数:计算要判断的数的每一 ...

  7. LeetCode 198, 213 House Robber

    198 House Robber DP 0~n-1     ans=dp[n-1] dp[i] = max(dp[i-2]+nums[i], dp[i-1])  i>=2 如果要输出偷了那些房子 ...

  8. Leetcode题目:House Robber

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

  9. Leetcode OJ: Maximun Subarray

    Maximum Subarray Find the contiguous subarray within an array (containing at least one number) which ...

最新文章

  1. 03-SpringMVC-获得用户请求数据
  2. MATLAB基本操作(九):可视化矩阵的矢量场quiver函数
  3. 处理百万级以上的数据提高查询速度的方法
  4. MybatisPlus 的 MetaObjectHandler 与 @TableLogic
  5. scrum项目协作是什么_什么是小型Scrum?
  6. 新来的运维这样用HDFS,CIO都懵了···
  7. javaWeb项目之图书管理系统(附视频讲解)
  8. 联合光伏:雨后复斜阳 关山阵阵苍
  9. 三维重建/SLAM笔记_最佳学习路线/攻略
  10. 关闭SqlConnection的方法
  11. 菜鸟教程学习Java
  12. VB.NET中Socket编程
  13. 写刀路的一些经验[分享] 铜公加工方法及注意事项
  14. 添加WhatsApp链接教程
  15. iOS 工具篇一一如何导出ipa文件和ipa文件安装在手机
  16. 关于python通过pyautocad操作cad的2021-06-10
  17. win7+linux双系统安装
  18. HDU-4515,小Q系列故事——世界上最遥远的距离(日期计算)
  19. android6.0分屏插件,xposed分屏模块安卓6.0下载
  20. Calendar代替Date类获取当前年月日,getYear,getMonth,getDay

热门文章

  1. 机器学习经典算法之KNN
  2. matlab 负数二进制转成十进制
  3. 品牌升级:商淘软件升级商淘云
  4. 新疆维吾尔自治区15市、5洲、5区行政区划 (2023)
  5. 云端来兔 新岁纳福 | 点击查收您的限定新年礼
  6. 每天搞懂10道Java基础题day06
  7. Java 字符串长度不足左右补0
  8. 花莲地震前 20 秒就已报警,地震精准预测不再遥远?
  9. ie中下载文件框中的文件名为“download.do”的解决办法
  10. Java 数据结构总结