LeetCode OJ 之 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.
假设你是一个专业抢劫犯,计划抢劫一条街道的房子。每个房子内都有一定数量的钱,唯一限制你抢劫的是每相邻的两个房子都有安保系统连接。如果两个相邻的房子都被破门而入的话,安保系统会自动报警。
有一组非负整数代表每个房子内的钱数,判断如何在不惊动警察的情况下可以抢劫的最多钱数。
思路:
动态规划:假设 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(抢劫犯)相关推荐
- LeetCode OJ 之 House Robber II (抢劫犯 - 二)
题目: Note: This is an extension of House Robber. After robbing those houses on that street, the thief ...
- LeetCode OJ -- Binary Tree Paths
http://blog.ubooksapp.com/ 标签(空格分隔): LeetCode OJ BinaryTree Given a binary tree, return all root-to- ...
- 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 = & ...
- Leetcode题目:House Robber II
题目: Note: This is an extension of House Robber. After robbing those houses on that street, the thief ...
- 【LeetCode OJ 136】Single Number
题目链接:https://leetcode.com/problems/single-number/ 题目:Given an array of integers, every element appea ...
- LeetCode OJ -Happy Number
题目链接:https://leetcode.com/problems/happy-number/ 题目理解:实现isHappy函数,判断一个正整数是否为happy数 happy数:计算要判断的数的每一 ...
- 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 如果要输出偷了那些房子 ...
- Leetcode题目:House Robber
题目: You are a professional robber planning to rob houses along a street. Each house has a certain am ...
- Leetcode OJ: Maximun Subarray
Maximum Subarray Find the contiguous subarray within an array (containing at least one number) which ...
最新文章
- 03-SpringMVC-获得用户请求数据
- MATLAB基本操作(九):可视化矩阵的矢量场quiver函数
- 处理百万级以上的数据提高查询速度的方法
- MybatisPlus 的 MetaObjectHandler 与 @TableLogic
- scrum项目协作是什么_什么是小型Scrum?
- 新来的运维这样用HDFS,CIO都懵了···
- javaWeb项目之图书管理系统(附视频讲解)
- 联合光伏:雨后复斜阳 关山阵阵苍
- 三维重建/SLAM笔记_最佳学习路线/攻略
- 关闭SqlConnection的方法
- 菜鸟教程学习Java
- VB.NET中Socket编程
- 写刀路的一些经验[分享] 铜公加工方法及注意事项
- 添加WhatsApp链接教程
- iOS 工具篇一一如何导出ipa文件和ipa文件安装在手机
- 关于python通过pyautocad操作cad的2021-06-10
- win7+linux双系统安装
- HDU-4515,小Q系列故事——世界上最遥远的距离(日期计算)
- android6.0分屏插件,xposed分屏模块安卓6.0下载
- Calendar代替Date类获取当前年月日,getYear,getMonth,getDay