【Leetcode 198】关关的刷题日记69 – Leetcode 198 House Robber
关关的刷题日记69 – Leetcode 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.
题目的意思是小偷沿着一排街道抢劫房子,每个房子都有一定数额的钱,但是不可以抢相邻的房子,问可以抢到的最大的钱数。
思路
动态规划的题目:设re[i]是抢劫前i个房子获得的最大收益,那么可以分为第i个房子不被抢和第i个房子被抢两种情况:第i个房子不被抢,re[i]=re[i-1];第i个房子被抢,re[i]=re[i-2]+nums[i];状态转移方程re[i]=max(re[i-1], re[i-2]+nums[i])。
class Solution {public:
int rob(vector<int>& nums) {
int n=nums.size();
if(n==0)
return 0;
if(n==1)
return nums[0];
if(n==2)
return max(nums[0], nums[1]);
int temp1=nums[0], temp2=max(nums[0],nums[1]), re;
for(int i=2; i<n; i++)
{
re=max(temp1+nums[i],temp2);
temp1=temp2;
temp2=re;
}
return re;
}};
以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。
- 常见排序算法-Python实现
- 免费域名与收费域名的差别有哪些?
- c++学习笔记之封装篇(上)
- c++学习笔记之继承篇
- c++学习笔记之继承篇
- silverlight:对象拖动的优雅解决方案
- Silverlgiht:快速去除/恢复对象的颜色
- deepin系统下如何设置wifi热点(亲测有效)
- Silverlight单元测试
- Silverlight:页面/控件继承的二种写法
- java学习:Hibernate入门
- Silverlight Telerik控件学习:GridView双向绑定
- XmlWriter/XmlReader示例代码
- Silverlight Telerik控件学习:RadComboBox之自动完成(AutoComplete)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- elastic search 修改日志级别为warn
- prometheus学习笔记(3)-使用exporter监控mysql
- elasticsearch query里面的slop选项
- 彻底明白Android设计模式—(动态)代理模式
- elastic search 如何将yellow 状态变为green健康状态
- All clients has disconnected from. You can graceful shutdown now., dubbo version: , current host
- Failed to instantiate org.mybatis.spring.SqlSessionTemplate Constructor threw exception
- 护网之Linux应急处理操作手册
- 对新版安全狗学习
- redis key的删除策略及LRU的实现
- 护网Linux应急处置操作手册-Tools篇
- 加密,编码三问
- 我是怎么挖掘yii2反序列化0day的
- yii2反序列化后续
- 线程基础三问——猫眼真题