当前位置: 首页 > ops >正文

[面试] 手写题-爬楼梯,斐波那契数列

爬楼梯

leetcode70. 爬楼梯

在这里插入图片描述
递归
时间复杂度 O(2^n)

var climbStairs = function(N) {if (N === 0) return 1;if (N === 1) return 1;return climbStairs (N - 1) + climbStairs (N - 2);
}
动态规划

时间复杂度:O(n)

本问题其实常规解法可以分成多个子问题,爬第n阶楼梯的方法数量,等于 2 部分之和

爬上 n−1 阶楼梯的方法数量。因为再爬1阶就能到第n
爬上 n−2 阶楼梯的方法数量,因为再爬2阶就能到第n
所以我们得到公式 dp[n]=dp[n−1]+dp[n−2]
同时需要初始化 dp[0]=1 dp[1]=1

var climbStairs = function(n) {let dp = [1,1];for(let i = 2; i <= n; i++) {dp[i] = dp[i - 1] + dp[i - 2];}return dp[n];
};
压缩空间,优化

dp[i] 只与过去的两项:dp[i-1] 和 dp[i-2] 有关,没有必要存下所有计算过的 dp 项。用两个变量去存这两个过去的状态就好。

const climbStairs = (n) => {let prev = 1;let cur = 1;for (let i = 2; i <= n; i++) {const temp = cur;   // 暂存上一次的curcur = prev + cur;   // 当前的cur = 上上次cur + 上一次curprev = temp;        // prev 更新为 上一次的cur}return cur;
}

斐波那契数列

leetcode 509
在这里插入图片描述
递归

var fib = function(N) {if (N === 0) return 0;if (N === 1) return 1;return fib(N - 1) + fib(N - 2);
}

动态规划

var fib = function(N) {let dp = [0,1];for(let i = 2; i <= n; i++) {dp[i] = dp[i - 1] + dp[i - 2];}return dp[n];
}

爬楼梯问题: f(0)=1 , f(1)=1
斐波那契数列问题:f(0)=0 , f(1)=1
只是初始值不同, 都是f(n)=f(n−1)+f(n−2)



参考:

leetcode70-题解1

leetcode70-题解2

http://www.xdnf.cn/news/15101.html

相关文章:

  • 利用Claude code,只用文字版系统设计大纲,就能轻松实现系统~
  • Kafka——应该选择哪种Kafka?
  • 京东携手HarmonyOS SDK首发家电AR高精摆放功能
  • 【深度学习新浪潮】图像生成有哪些最新进展?
  • 光电耦合器在电冰箱开关电源的应用
  • pandas销售数据分析
  • Cesium实战:交互式多边形绘制与编辑功能完全指南(最终修复版)
  • 前端面试专栏-算法篇:23. 图结构与遍历算法
  • Java(7.11 设计模式学习)
  • python的社区残障人士服务系统
  • Grok 4全面解析:马斯克的多智能体AI如何颠覆技术边界
  • 格式规范公文处理助手:一键排版 标题 / 正文 / 页码一键调,Word 脚本自定义
  • 嵌入式学习笔记--MCU阶段--day03中断
  • 网安系列【16】之Weblogic和jboss漏洞
  • 二层环路避免-STP技术
  • Transformer架构:结构介绍
  • STM32F103C8T6单片机内部执行原理及启动流程详解
  • 使用Tensorflow和CNN进行猫狗图片训练的实战总结
  • 【CF】⭐Day96——2025武汉ICPC(AILF)
  • MyBatis插件机制揭秘:从拦截器开发到分页插件实战
  • 深度学习_全连接神经网络
  • 单片机基础(STM32-DAY2(GPIO))
  • 如何发现 Redis 中的 BigKey?
  • 【计算机网络】HTTP1.0 HTTP1.1 HTTP2.0 QUIC HTTP3 究极总结
  • STM32 中实现 Modbus RTU
  • OneCode AI注解框架:让传统软件15分钟升级为AI原生应用
  • 从零开始搭建深度学习大厦系列-3.卷积神经网络基础(5-9)
  • 【Note】Linux Kernel 实时技术深入:详解 PREEMPT_RT 与 Xenomai
  • python+django/flask基于微信小程序的农产品管理与销售APP系统
  • 数据仓库:企业数据管理的核心枢纽