Leecode-198. 打家劫舍——动态规划(C++)
我是小张同学,立志用更简洁的代码做更高效的表达
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。
示例 1:
输入:[1,2,3,1]
输出:4
解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。
偷窃到的最高金额 = 1 + 3 = 4 。
示例 2:
输入:[2,7,9,3,1]
输出:12
解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。
偷窃到的最高金额 = 2 + 9 + 1 = 12 。
提示:
1 <= nums.length <= 100
0 <= nums[i] <= 400
- 题目链接:https://leetcode-cn.com/problems/house-robber/
- 题型:动态规划
- 公式
dp[i+1]=max(dp[i],dp[i−1]+nums[i]);dp[i+1] = max(dp[i], dp[i-1] + nums[i]);dp[i+1]=max(dp[i],dp[i−1]+nums[i]); - 边界条件:
dp[0]=0;dp[0] = 0;dp[0]=0;
dp[1]=nums[0];dp[1] = nums[0];dp[1]=nums[0];
class Solution {public:int rob(vector<int>& nums) {int dp[nums.size() + 1];dp[0] = 0;dp[1] = nums[0];for(int i = 2; i <= nums.size(); i++) {dp[i] = max(dp[i-1], dp[i-2] + nums[i-1]);}return dp[nums.size()];}
};
Leecode-198. 打家劫舍——动态规划(C++)相关推荐
- 力扣198.打家劫舍---动态规划与滚动数组
力扣198.打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动 ...
- 102. Leetcode 198. 打家劫舍 (动态规划-打家劫舍)
步骤一.确定状态: 1.确定原问题中变化的变量个数 2.考虑最后一步: 对于第N间房屋,有两个选项: 偷窃第N间房屋,那么就不能偷窃第N−1间房屋,偷窃总金额为前N-2间房屋的最高总金额与第N间房屋的 ...
- LeetCode 198. 打家劫舍(动态规划)
题目描述 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定 ...
- 198. 打家劫舍 golang 动态规划 数组越界
题目 198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会 ...
- 动态规划——斐波那契数列(70. 爬楼梯、198. 打家劫舍、213. 打家劫舍II、信件错排、母牛生产)
递归和动态规划都是将原问题拆分成多个子问题然后求解,但是动态规划存储了子问题的解,不需要重复计算. 动态规划(Dynamic Programming,DP)需要转移方程和边界条件. 目录 一.70. ...
- leetcode - 198. 打家劫舍
198. 打家劫舍 -------------------------------------- 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房 ...
- LeetCode-动态规划-198. 打家劫舍
198. 打家劫舍 思路:dp[i] = max(dp[i-2]+nums[i], dp[i-1]) class Solution {public:int rob(vector<int>& ...
- 模拟卷Leetcode【普通】198. 打家劫舍
198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报 ...
- leetcode 198打家劫舍
leetcode 198打家劫舍 题目链接:打家劫舍 题目描述:你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间 ...
- 代码随想录Day48|198.打家劫舍、213.打家劫舍II、337.打家劫舍III
文章目录 198.打0家劫舍 213.打家劫舍II 337.打家劫舍III 198.打0家劫舍 文章讲解:代码随想录 (programmercarl.com) 题目链接:198. 打家劫舍 - 力扣( ...
最新文章
- java try catch嵌套_解析Java中未被捕获的异常以及try语句的嵌套使用
- C++知识点15——使用C++标准库(IO流)
- 借助JRebel使Tomcat支持热部署
- java日期时间的转化
- 【Python-ML】SKlearn库密度聚类DBSCAN模型
- Linux操作系统笔记——Shell变量
- 由一次代码优化想到的Js 数据类型
- 华谊兄弟:拟向阿里影业、腾讯等发行不超8.2亿股股票
- 3D几何图形PS笔刷下载安装
- PS选中部分区域调整透明度
- SPSS正态分布,泊松分布,指数分布,均匀分布检验
- 2017年2月22日-----------乱码新手自学.net 之Entity Framework 增删改
- 华东师范大学2020计算机研究生招生简章,2020华东师范大学计算机考研大纲
- NeurIPS 2021 | CyGen:基于概率论理论的生成式建模新模式
- TI AWR1642学习笔记7 TSW1400采集原始数据
- 7-1 复数类的操作
- Caffeine教程
- mysql分组排列的查询语句_数据的排序与分组语句_MySQL
- Rational Rose 2003下载与破解安装
- ffmpeg音乐+图片合成视频
热门文章
- Android 图形系统
- 从流量控制算法谈网络优化-TCP核心原理理解
- 谈谈对Canal(增量数据订阅与消费)的理解
- 二叉树构建及双向链表
- 什么是HLS(HTTP Live Streaming)?
- 【今晚9点】:对话袁荣喜——一名C程序员的打怪之路
- TikTok测试三分钟视频、Reddit首次公布DAU、谷歌解雇人工智能领头人、年度最受欢迎应用|Decode the Week...
- 【LiveVideoStack线上分享】— FreeSWITCH核心架构与流程控制
- 即构科技邱国钦:遇到问题解决问题 慢慢点可以拟合成线
- P2P技术如何拯救一家直播网站