当前位置:网站首页>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];
}
}
边栏推荐
猜你喜欢
随机推荐
Pytorch GPU模型推理时间探讨2——显卡warm up
同一块中出现两个 * 就不能正常显示
等保2.0一个中心三重防护指的是什么?如何理解?
如何学习性能测试?
Go-Excelize API源码阅读(六)—— DeleteSheet(sheet string)
期货开户手续费加1分已经是常态
Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满?
招聘分析2020.6.1
router.afterEach()
ARM开发(三)ARM寻址方式,异常中断,异常向量表
Redis下载安装教程 (windows)
【科研】常见火灾数据集
DASCTF2022.07赋能赛 WEB题目复现
FFmpeg extract H264 nalu from the mp4
leetcode:159.最多有两个不同字符的最长子串
zabbix配置触发器
ZLMediaKit 服务器源码解读---RTSP推流拉流
「NewSQL技术」Greenplum 6中的OLTP负载性能提升60倍以上
Colocate Join :ClickHouse的一种高性能分布式join查询模型
1001 A+B Format (string processing)









