做网站好处小程序原生开发

张小明 2026/3/2 16:31:04
做网站好处,小程序原生开发,做网站的项目介绍,嵌入式培训一般多少钱目录 方法 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进行投诉反馈,一经查实,立即删除!

网站建设建设哪家便宜建设部网站公示公告

Samba故障排除:名称服务、网络地址与NetBIOS名称问题解决 1. 常见错误及初步排查 在使用Samba服务时,常常会遇到一些错误提示,以下是常见错误及可能的原因: - “You do not have the necessary access rights” 或 “This server is not configured to list shared res…

张小明 2026/1/14 20:53:57 网站建设

在线用代码做网站淘客网站怎么与pid

如何快速上手GitNext:OpenHarmony专属Git客户端完整指南 【免费下载链接】GitNext 基于可以运行在OpenHarmony的git,提供git客户端操作能力 项目地址: https://gitcode.com/OpenHarmonyPCDeveloper/GitNext GitNext是一款专为OpenHarmony PC端开发…

张小明 2026/1/14 20:51:56 网站建设

济南专业网站制作公司珠海网站建设找哪家好

学生综合测评管理 目录 基于springboot vue学生综合测评管理系统 一、前言 二、系统功能演示 详细视频演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue学生综合测评管理系…

张小明 2026/1/14 20:49:55 网站建设

网站优化图片个人可以建设网站吗

一、背景意义 随着城市化进程的加快,交通流量的急剧增加使得交通安全问题日益突出,尤其是在铁路道口这一特殊的交通节点。铁路道口是铁路与公路交叉的地方,往往是交通事故的高发区域。根据统计数据,铁路道口事故不仅造成了人员伤亡…

张小明 2026/1/14 20:47:54 网站建设

外国网站签到做任务每月挣钱hao123主页网址之家

一.概念1.结点的度:⼀个结点含有⼦树的个数称为该结点的度;2.树的度:⼀棵树中,所有结点度的最⼤值称为树的度;3.叶⼦结点或终端结点:度为0的结点称为叶结点;4.双亲结点或⽗结点:若⼀…

张小明 2026/1/14 20:45:53 网站建设

全球最大的平面设计网站开发商城网站多少钱

目录 一、压缩光是什么?打破不确定性原理的 “巧妙平衡” 二、压缩光是怎么来的?从实验室到实用化的技术突破 三、压缩光的核心应用:从基础科研到民生科技的跨界赋能 1. 量子精密测量:突破经典极限的 “探测利器” 2. 量子通…

张小明 2026/1/14 20:43:51 网站建设