当前位置:网站首页>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];
}
}
边栏推荐
猜你喜欢
随机推荐
软链接、硬链接——ln -s 使用
Selenium - 如何操作鼠标进行悬停、右击、双击、拖拽?
Splitting and merging long markdown documents
R语言patchwork包将多个可视化结果组合起来、plot_annotation函数以及tag_level参数将组合图用大写字母进行顺序编码、为组合图的标签添加自定义后缀信息(suffix)
DGIOT平台实时展示OPC上报数据全流程代码剖析
忍不住 - 发个新帖子【为什么把红圈的功能入口隐藏?需要移动到鼠标到位置驻停才显示?】- 请投票
Talk about cloud native data platform
CAS客户端对接
施工企业数字化转型解决方案设计思路
「企业架构」什么是Zachman框架?
成为一个优秀的测试工程师需要具备哪些知识和经验?
Interpretation of ZLMediaKit server source code---RTSP push and pull
FFmpeg extract H264 nalu from the mp4
痛苦的四大原因
未来5年的9大技术趋势
百度、四维图新、高德争“鲜”恐后
轮询以及webSocket与socket.io原理
mysql定义存储过程
DASCTF2022.07 empowerment competition WEB topic recurrence
【接入指南 之 直接接入】手把手教你快速上手接入HONOR Connect平台(中)









