dedecms网站如何上线网站建设智推网

张小明 2026/1/10 15:04:54
dedecms网站如何上线,网站建设智推网,网站优化的方式有哪些,如何制作网络游戏目录 方法 1#xff1a;朴素回溯#xff08;暴力递归#xff09; 思路 Java 实现 时空复杂度 问题 方法 2#xff1a;记忆化搜索#xff08;自顶向下 DP#xff09; 思路 Java 实现 时空复杂度 优化点 方法 3#xff1a;自底向上的动态规划#xff08;DP 数组…目录方法 1朴素回溯暴力递归思路Java 实现时空复杂度问题方法 2记忆化搜索自顶向下 DP思路Java 实现时空复杂度优化点方法 3自底向上的动态规划DP 数组思路Java 实现时空复杂度优化点方法 4空间优化的动态规划双变量思路Java 实现时空复杂度优化点优化变迁总结打家劫舍问题的核心是 “相邻房屋不能同时偷”我们从暴力回溯开始逐步优化到空间最优的动态规划下面分步骤解析方法 1朴素回溯暴力递归思路通过递归枚举每个房屋的两种选择偷当前房屋则只能偷前 i-2 个房屋的最大金额 当前金额、不偷当前房屋则偷前 i-1 个房屋的最大金额。状态定义dfs(i)表示 “考虑前 i 个房屋时的最大偷窃金额”。Java 实现class Solution { public int rob(int[] nums) { return dfs(nums, nums.length - 1); } // 递归计算前i个房屋的最大金额 private int dfs(int[] nums, int i) { if (i 0) return 0; // 边界没有房屋时金额为0 // 选择1不偷i取前i-1的最大选择2偷i取前i-2的最大当前金额 return Math.max(dfs(nums, i - 1), dfs(nums, i - 2) nums[i]); } }时空复杂度时间复杂度O(2n)每个房屋分 2 种选择递归树深度为 n总节点数是2n级空间复杂度O(n)递归栈的深度为 n问题存在大量重复计算例如计算dfs(5)需要dfs(4)和dfs(3)计算dfs(4)又需要dfs(3)和dfs(2)dfs(3)会被多次计算效率极低n≥20 时就会超时。方法 2记忆化搜索自顶向下 DP思路用 ** 备忘录数组** 存储已经计算过的dfs(i)结果避免重复计算 —— 每次计算前先检查备忘录若已存在结果则直接返回否则计算后存入备忘录。Java 实现import java.util.Arrays; class Solution { private int[] memo; // 备忘录存储每个i对应的最大金额 public int rob(int[] nums) { int n nums.length; memo new int[n]; Arrays.fill(memo, -1); // 初始化-1表示该位置未计算金额非负不会和有效结果冲突 return dfs(nums, n - 1); } private int dfs(int[] nums, int i) { if (i 0) return 0; if (memo[i] ! -1) return memo[i]; // 已计算直接返回 // 计算并存入备忘录 int res Math.max(dfs(nums, i - 1), dfs(nums, i - 2) nums[i]); memo[i] res; return res; } }时空复杂度时间复杂度O(n)每个 i 只计算 1 次空间复杂度O(n)备忘录数组 递归栈优化点解决了 “重复计算” 的问题将时间复杂度从指数级降到线性但仍依赖递归栈。方法 3自底向上的动态规划DP 数组思路把 “自顶向下的递归” 改成 “自底向上的迭代”用DP 数组存储每个位置的最大金额彻底避免递归栈。状态定义dp[i]表示 “前 i 个房屋的最大偷窃金额”。状态转移不偷第 i 个房屋dp[i] dp[i-1]偷第 i 个房屋dp[i] dp[i-2] nums[i-1]nums 索引比 dp 小 1因为 dp [0] 对应 “0 个房屋”Java 实现class Solution { public int rob(int[] nums) { int n nums.length; if (n 0) return 0; // dp[i]前i个房屋的最大金额i从0到n int[] dp new int[n 1]; dp[0] 0; // 0个房屋金额0 dp[1] nums[0]; // 1个房屋金额为nums[0] // 从第2个房屋开始迭代 for (int i 2; i n; i) { dp[i] Math.max(dp[i - 1], dp[i - 2] nums[i - 1]); } return dp[n]; } }时空复杂度时间复杂度O(n)仅需遍历 1 次空间复杂度O(n)DP 数组占用 n1 空间优化点用迭代替代递归避免了递归栈溢出的风险但空间仍依赖数组。方法 4空间优化的动态规划双变量思路观察状态转移dp[i]只依赖dp[i-1]和dp[i-2]因此不需要整个 DP 数组只需用两个变量分别存储这两个依赖值即可。Java 实现class Solution { public int rob(int[] nums) { int f0 0; // 对应dp[i-2]前i-2个房屋的最大金额 int f1 0; // 对应dp[i-1]前i-1个房屋的最大金额 for (int x : nums) { int newF Math.max(f1, f0 x); // 计算当前房屋的最大金额 f0 f1; // 更新f0为原来的f1i-1 → i-2 f1 newF; // 更新f1为当前的newFi → i-1 } return f1; } }时空复杂度时间复杂度O(n)遍历 1 次空间复杂度O(1)仅用 2 个变量优化点将空间复杂度从O(n)降到O(1)是该问题的最优空间方案。优化变迁总结朴素回溯O(2^n)时间 ↓ 解决重复计算 记忆化搜索O(n)时间O(n)空间 ↓ 去掉递归栈改为迭代 自底向上DP数组O(n)时间O(n)空间 ↓ 去掉冗余数组用双变量替代 空间优化DPO(n)时间O(1)空间
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

郑州做网站的公司排名沧州免费建站

华为HarmonyOS终极指南:彻底解决MicroG签名伪造难题 【免费下载链接】GmsCore Free implementation of Play Services 项目地址: https://gitcode.com/GitHub_Trending/gm/GmsCore 还在为MicroG在华为设备上的兼容性问题烦恼吗?🤔 今天…

张小明 2026/1/6 11:30:31 网站建设

深圳工程招标信息网光泽网站建设wzjseo

两条通往AGI的道路:当我们为错误的未来做准备时想象这样一个场景: 2027年的某个周二早晨,世界并没有因为某个实验室宣布"我们创造了AGI"而改变。相反,一家金融公司突然发现,他们部署的17个专业AI代理——数据…

张小明 2025/12/26 7:58:44 网站建设

顺义公司建站多少钱深圳设计院招聘

还在为毕业论文的庞杂工程而彻夜难眠吗?从选题、开题、文献综述到初稿撰写、格式排版、降重修改,每一步都足以让大学生和研究生们心力交瘁。传统的写作方式耗时耗力,效率低下,早已无法满足快节奏的学术要求。 今天,作…

张小明 2025/12/26 7:58:10 网站建设

免费的行情软件网站入口wordpress+主题+试用

在毕业论文季,高效完成开题报告和论文是很多学子的痛点。人工写作虽然灵活,但耗时耗力;而AI工具的兴起,能快速生成内容、优化重复率和AI痕迹。今天,我通过9款平台对比,帮你找出最适合的“学术搭档”。先从人…

张小明 2025/12/26 7:57:36 网站建设

网站做优化的成本公司企业官网

Java实习模拟面试|得物后端Java一面(26届秋招):深入MySQL隔离级别、MVCC机制与Kafka实战 关键词:Java后端面试|MySQL隔离级别|MVCC原理|幻读问题|Kafka应用场景&#xff…

张小明 2025/12/26 7:56:29 网站建设

临沂在线做网站wordpress媒体库搜索

第一章:Open-AutoGLM风险意识与全局审视在部署和使用 Open-AutoGLM 这类开源自动化大语言模型框架时,必须建立全面的风险识别与防控机制。模型的开放性虽提升了可定制能力,但也引入了数据泄露、恶意指令执行和权限越权等安全隐患。开发者与运…

张小明 2026/1/7 8:03:39 网站建设