关于网站建设的论文题目小视频网站开发流程图
2026/5/28 13:46:22 网站建设 项目流程
关于网站建设的论文题目,小视频网站开发流程图,响应式网站开发费用,网站安全证书过期怎么办0#xff09;先记住一句话#xff08;贯穿两种写法#xff09;到第 n 阶的方法数#xff1a;最后一步要么走 1 阶#xff1a;从 n-1 来要么走 2 阶#xff1a;从 n-2 来所以永远是#xff1a;f(n) f(n-1) f(n-2)1#xff09;递归版本#xff08;从“大问题”往下问“…0先记住一句话贯穿两种写法到第n阶的方法数最后一步要么走 1 阶从n-1来要么走 2 阶从n-2来所以永远是f(n) f(n-1) f(n-2)1递归版本从“大问题”往下问“小问题”✅ 1.1 纯递归不推荐会爆炸慢想法我想知道f(n)那就去问f(n-1)和f(n-2)。def climbStairs(n): if n 2: return n return climbStairs(n-1) climbStairs(n-2)为什么慢因为它会“重复算同一个问题”比如算f(5)f(5)f(4)f(3) f(4)f(3)f(2) f(3)f(2)f(1)你看f(3)、f(2)被算了很多遍。复杂度接近O(2^n)n 稍大就非常慢。✅ 1.2 递归 记忆化推荐递归也能很快核心每个f(k)只算一次算过就记下来下次直接拿。def climbStairs(n): memo {} def dfs(k): if k 2: return k if k in memo: return memo[k] memo[k] dfs(k-1) dfs(k-2) return memo[k] return dfs(n)复杂度O(n)因为1...n每个值只算一次。2递推版本从“小问题”一路推到“大问题”递推就是我先知道最小的答案然后一步步算到 n。✅ 2.1 DP 数组版最直观dp[i] 代表到 i 阶的方法数 从 i3 推到 n复杂度O(n)时间O(n)空间。✅ 2.2 空间优化版你写的版本最常用观察转移方程dp[i]只依赖dp[i-1]和dp[i-2]所以没必要保存整个数组只保留最近两个数就够了。class Solution: def climbStairs(self, n: int) - int: if n 2: return n a, b 1, 2 # dp[1], dp[2] for _ in range(3, n 1): a, b b, a b return b复杂度O(n)时间O(1)空间。3递归 vs 递推一眼对比写法思维方向是否重复计算时间复杂度空间复杂度纯递归自顶向下n→1✅会大量重复O(2^n)O(n) 递归栈递归记忆化自顶向下n→1❌不重复O(n)O(n)递推 DP 数组自底向上1→n❌不重复O(n)O(n)递推 空间优化自底向上1→n❌不重复O(n)O(1)4一句话解释递归像问路——“到第 n 阶怎么走那我先问到 n-1 怎么走再问到 n-2 怎么走。”递推像建楼——“先把 1 阶、2 阶的答案写出来然后一层层推上去。”

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询