F.动态规划-入门DP-打家劫舍:198. 打家劫舍
题目链接198. 打家劫舍中等LCR 089. 打家劫舍中等算法原理此题与下题完全相同动态规划算法-简单多状态dp问题11.按摩师解法动态规划0ms击败100.00%时间复杂度O(N)空间复杂度O(N)①状态表示dp0[i]不选择第 i -1 个房屋获得的最大价值dp1[i]选择第 i -1个房屋获得的最大金额②状态转移方程遍历到当前房屋 i 时有两种选择选或不选选前一个房屋必须不选dp1[i] dp0[i-1] nums[i]不选前一个房屋可选可不选dp0[i] Math.max(dp1[i-1], dp0[i-1])0③初始化dp0[0] 0不选第1个房屋dp1[0] nums[0]选第1个房屋④填表顺序从左往右⑤返回值返回最后一个房屋选或不选这两种状态下的最大值max(dp0[n-1],dp1[n-1])滚动数组空间优化0ms击败100.00%时间复杂度O(N)空间复杂度O(1)由于遍历到当前房屋时更新仅依靠前一个房屋的状态的选或不选因此可用单个变量代替整个数组实现“滚动数组”将空间复杂度压倒O(1)遍历到当前房屋前dp0不偷上一个房子时的最大金额dp1偷上一个房子的最大金额遍历到当前房屋时新状态max(这个偷上个不偷这个不偷上个随便)这个偷上个不偷xdp0这个不偷上个随便0上个随便偷和不偷的最大值max(dp1,dp0)因此dpmax(dp0x,0dp1,dp0)max(dp0x,dp1)更新逻辑下一轮遍历的 “上一个房子”就是我们现在处理的 “当前房子 x”因此下一轮的 dp0不偷上一个房子 → 对应现在的 “不偷当前房子 x” 的最大金额也就是“保持偷上一个房子的最大金额而当前房子不偷”而这个值就是我们现在的 dp1因此dp0dp1下一轮的 dp1偷上一个房子 → 对应现在的 “偷到当前房子 x” 的最大金额也就是我们刚算出来的 dpJava代码class Solution { public int rob(int[] nums) { int nnums.length; //dp0[i]不选第i-1个房屋的最大价值 int[] dp0new int[n]; dp0[0]0; //dp1[i]选第i-1个房屋的最大价值 int[] dp1new int[n]; dp1[0]nums[0]; for(int i1;in;i){ //选前一个必须不选 dp1[i]dp0[i-1]nums[i]; //不选前一个可选可不选 dp0[i]Math.max(dp1[i-1],dp0[i-1])0; } return Math.max(dp0[n-1],dp1[n-1]); } }class Solution { //滚动数组空间优化 public int rob(int[] nums) { int nnums.length; int dp00,dp10; for(int x:nums){ int dpMath.max(dp0x,dp1); dp0dp1; dp1dp; } return dp1; } }

相关新闻

“三晋优品 乐购云端”直播活动开始啦!

“三晋优品 乐购云端”直播活动开始啦!

2026/7/5 18:35:39 阅读更多 →
c/c++高频面试:TCP粘包三种解决方案

c/c++高频面试:TCP粘包三种解决方案

1. 消息定长 (Fixed-Length Messages)原理:发送端和接收端约定,每一个消息的长度都是固定的(比如 1024 字节)。实现:如果发送的数据不足 1024 字节,就用空格或 \0 补齐;接收端每次严格读取 1024…

2026/7/3 10:41:26 阅读更多 →
低产油井抽油机电气控制系统设计

低产油井抽油机电气控制系统设计

低产油井抽油机电气控制系统设计 第一章 绪论 低产油井在我国油田存量中占比较高,传统抽油机多采用恒速连续运行模式,容易出现空抽、液击、电能浪费严重、设备磨损大等问题,难以与地层供液能力匹配。为提高抽油效率、降低能耗、延长设备使用寿…

2026/7/3 10:41:18 阅读更多 →

最新新闻

hexo-tag-aplayer从入门到精通:构建博客音乐系统的完整路线图

hexo-tag-aplayer从入门到精通:构建博客音乐系统的完整路线图

hexo-tag-aplayer从入门到精通:构建博客音乐系统的完整路线图 【免费下载链接】hexo-tag-aplayer Embed aplayer in Hexo posts/pages 项目地址: https://gitcode.com/gh_mirrors/he/hexo-tag-aplayer hexo-tag-aplayer是一款强大的Hexo标签插件,…

2026/7/5 18:35:29 阅读更多 →
网盘直链下载助手完整指南:一键获取八大网盘真实下载地址的终极解决方案

网盘直链下载助手完整指南:一键获取八大网盘真实下载地址的终极解决方案

网盘直链下载助手完整指南:一键获取八大网盘真实下载地址的终极解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中…

2026/7/5 18:33:28 阅读更多 →
如何扩展Runno:添加自定义编程语言运行时的完整指南

如何扩展Runno:添加自定义编程语言运行时的完整指南

如何扩展Runno:添加自定义编程语言运行时的完整指南 【免费下载链接】runno Sandboxed runtime for programming languages and WASI binaries. Works in the browser, on your server, or via MCP. 项目地址: https://gitcode.com/gh_mirrors/ru/runno Runn…

2026/7/5 18:33:28 阅读更多 →
对字符串排序的影响

对字符串排序的影响

字符串的大小比较并不是如C那样按照字符串字符内码大小顺序从头到尾来比较的。由于我是从C/C转过来的,我一直以来都以为.net 下字符串的比较规则和C是一样的,直到有一天我的程序在英文操作系统下出错。 .net 下,字符串的排序受 System.Threa…

2026/7/5 18:29:28 阅读更多 →
Runno高级调试技巧:解决复杂代码执行问题的完整方法

Runno高级调试技巧:解决复杂代码执行问题的完整方法

Runno高级调试技巧:解决复杂代码执行问题的完整方法 【免费下载链接】runno Sandboxed runtime for programming languages and WASI binaries. Works in the browser, on your server, or via MCP. 项目地址: https://gitcode.com/gh_mirrors/ru/runno Runn…

2026/7/5 18:29:28 阅读更多 →
Instatic集群部署:负载均衡与会话共享配置指南

Instatic集群部署:负载均衡与会话共享配置指南

Instatic集群部署:负载均衡与会话共享配置指南 【免费下载链接】Instatic Instatic is a modern self-hosted visual CMS - get it running in 1 minute 项目地址: https://gitcode.com/GitHub_Trending/in/Instatic Instatic作为一款现代自托管视觉CMS&…

2026/7/5 18:25:26 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻