当前位置:网站首页>LeetCode 198:打家劫舍
LeetCode 198:打家劫舍
2022-08-10 17:30:00 【斯沃福德】
链接
题目:
思路:动态规划

dp定义:以start为起点,可以偷的最多的钱是多少, 所求即 dp(nums,0) ;
状态和选择:
状态:就是起点start,即小偷所处的位置即nums数组的索引;
选择:当前要么抢,要么不抢,如果不抢则start想前走+1,如果抢,则要加上当前nums中start位置的钱,然后start+2 !base case:
如果 start > nums.lenth-1 ,则为0 ,即起点超过最后一家就抢不到了;重叠子问题
class Solution {
int memo[];
public int rob(int[] nums) {
memo=new int[nums.length];
Arrays.fill(memo,-1); // 初始化dp
return dp(nums,0);
// memo定义:从 i出发能抢到最多的钱总数
}
int dp(int[] nums,int start){
// start就对应题目数组的索引;
// base case ,即start超过最后一间房子后,抢到的为0
if(start>=nums.length){
return 0;
}
// 重叠子问题
if(memo[start]!=-1){
return memo[start];
}
// 状态转移(选择):不抢 or 抢
memo[start]=Math.max( dp(nums,start+1) , dp(nums,start+2)+nums[start] );
return memo[start];
}
}
边栏推荐
猜你喜欢
随机推荐
mysql定义存储过程
【接入指南 之 直接接入】手把手教你快速上手接入HONOR Connect平台(上)
R语言检验时间序列的平稳性:使用fUnitRoots包中的adfTest函数检验时间序列数据是否具有平稳性(设置参数type为nc时、既不去除趋势也不进行中心化处理)
【接入指南 之 直接接入】手把手教你快速上手接入HONOR Connect平台(中)
Selenium - 如何使用隐式、显示、强制元素等待?
win11安装deepin20.6双系统(双硬盘)
skywalking漏洞学习
【燃】是时候展现真正的实力了!一文看懂2022华为开发者大赛技术亮点
Colocate Join :ClickHouse的一种高性能分布式join查询模型
机器人控制器编程实践指导书旧版-实践七 无线通信(网络)
奥迪的极致高端属于一个大写的H?重塑时空,谁会是这个夜晚的主角?
pip install fatal error C1083 cannot open include file "io.h" No such file or directory
百度、四维图新、高德争“鲜”恐后
fastjson链分析(1.2.22-47)
MogDB学习笔记-从2开始(MogHA)
AVFrame相关api内存管理
2021强网杯
忍不住 - 发个新帖子【为什么把红圈的功能入口隐藏?需要移动到鼠标到位置驻停才显示?】- 请投票
BalsnCTF2021
验算移位距离和假设的通用性









