leetcode 198
198. 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.
求出一个数列中不相邻的的组合的各个数相加的的最大值。
采用动态规划的思想。
对于第i个房间我们的选择是偷和不偷,
如果决定是偷 则第i-1个房间必须不偷 那么 这一步的就是 re[i] = nums(i-1) + re[i-2] ,
假设re[i]表示打劫到第i间房屋时累计取得的金钱最大值.
如果是不偷, 那么上一步就无所谓是不是已经偷过, re[i] = re[i -1 ], 因此 re[i] =max(re[i-2] + nums(i-1), re[i-1] );
利用动态规划,状态转移方程:re[i] = max(re[i - 1], re[i - 2] + nums[i - 1]).
代码如下:
class Solution {
public:
int rob(vector<int>& nums) {
int n = nums.size();
if(n == )
{
return ;
}
int * re = new int[n+];
re[] = ;
re[] = nums[];
for(int i = ; i < n+; i++)
{
re[i] = max(re[i-], re[i-] + nums[i-]);
}
return re[n];
}
};
leetcode 198的更多相关文章
- [LeetCode] 198. 打家劫舍II ☆☆☆(动态规划)
描述 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金.这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的.同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的 ...
- [LeetCode] 198. House Robber 打家劫舍
You are a professional robber planning to rob houses along a street. Each house has a certain amount ...
- LeetCode 198. 打家劫舍(House Robber) 5
198. 打家劫舍 198. House Robber 题目描述 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两 ...
- leetcode 198打家劫舍
讲解视频见刘宇波leetcode动态规划第三个视频 记忆化搜索代码: #include <bits/stdc++.h> using namespace std; class Solutio ...
- leetcode 198. House Robber (Easy)
https://leetcode.com/problems/house-robber/ 题意: 一维数组,相加不相邻的数组,返回最大的结果. 思路: 一开始思路就是DP,用一维数组保存dp[i]保存如 ...
- [LeetCode] 198. 打家劫舍 ☆(动态规划)
描述 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定一个 ...
- leetcode 198. House Robber 、 213. House Robber II 、337. House Robber III 、256. Paint House(lintcode 515) 、265. Paint House II(lintcode 516) 、276. Paint Fence(lintcode 514)
House Robber:不能相邻,求能获得的最大值 House Robber II:不能相邻且第一个和最后一个不能同时取,求能获得的最大值 House Robber III:二叉树下的不能相邻,求能 ...
- Java实现 LeetCode 198 打家劫舍
198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报 ...
- [LeetCode]198. 打家劫舍(DP)
题目 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定一个 ...
随机推荐
- 1月11日,HTML学习笔记
<ul> <li>coffee</li> <li>tea</li> <li>mile</li> </ul> ...
- 【ZOJ1003】Crashing Balloon(DFS)
Crashing Balloon Time Limit: 2 Seconds Memory Limit: 65536 KB On every June 1st, the Children's ...
- Servlet执行流程和生命周期【慕课网搬】
Servlet执行流程(GET方式为例) 首先用户客户端浏览器发出Get方式(点击超链接方式)向浏览器发出请求. 服务器接收到客户端点击超链接,接收到GET请求之后,服务器到WEB.xml中<s ...
- SSH 端口转发+内网穿透
用最直白的语言对本文所有内容进行定义: 端口转发(-L):用A机器(内网)登录B机器(公网), 在A机器打开端口,将收到的所有请求转发到B机器的某个端口 (在代理机上执行) 内网穿透(-R):用A机器 ...
- Android ORMapping库
自己用Java的注解实现了Android SQLite的ORM库,之前写过XML的,不过感觉不是很稳定,效率.鲁棒性各方面都不太好,今天花了一下午的时间,补全了所有的注解.注释,生成了javadoc, ...
- Intellij IDEA +MAVEN+Jetty实现Mybatis的HelloWorld
1 maven配置:pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht ...
- Redis的AOF是怎么实现的
今天通过阅读AOF的实现代码,牵出了许多本来不是必须的话题,也都记下来先: Redis自己搞了一套事件循环机制: http://itindex.net/detail/26944-redis-%E4%B ...
- bzoj1904: Musical Water-fence
找出最高的木块,假设在这块木块上无限加水,就会形成一些水池,然后才向两侧溢出 用并查集维护当前在某个位置使水向左/右流动,水会流向哪个水池或从某一侧溢出浪费,当某个水池满时更新并查集 #include ...
- linux下tomcat的安装和配置
安装前要求: 1. 安装java环境. 2. 配置java环境变量 开始了: 1. 在官网下载tomcat:http://tomcat.apache.org/ 2. linux环境选择.zip或者.t ...
- delphi 串口 关于RS485总线通信协议开发注意事项
http://blog.csdn.net/shjhuang/article/details/9426739 关于RS485总线通信协议开发注意事项 1 前言 近段时间发现我们系统在进行设备 ...