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

记字节前端面试一道简单的算法题

记字节前端面试一道简单的算法题

70. 爬楼梯 (medium)

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例 1:

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。

  1. 1 阶 + 1 阶
  2. 2 阶
方法1.动态规划
ds_71
  • 思路:因为每次可以爬 1 或 2 个台阶,所以到第n阶台阶可以从第n-2或n-1上来,其实就是斐波那契的dp方程
  • 复杂度分析:时间复杂度O(n),空间复杂度O(1)

Js:

var climbStairs = function (n) {const memo = [];memo[1] = 1;memo[2] = 2;for (let i = 3; i <= n; i++) {memo[i] = memo[i - 2] + memo[i - 1];//所以到第n阶台阶可以从第n-2或n-1上来}return memo[n];
};//状态压缩
var climbStairs = (n) => {let prev = 1;let cur = 1;for (let i = 2; i < n + 1; i++) {[prev, cur] = [cur, prev + cur]// const temp = cur;   // 暂存上一次的cur// cur = prev + cur;   // 当前的cur = 上上次cur + 上一次cur// prev = temp;        // prev 更新为 上一次的cur}return cur;
}

Java:

class Solution {public int climbStairs(int n) {int prev = 1, cur = 1;for (int i = 2; i < n + 1; i++) {int temp = cur;cur = prev + cur;  prev = temp; }return cur;}
}
视频讲解(高效学习):点击学习
目录:

1.开篇介绍

2.时间空间复杂度

3.动态规划

4.贪心

5.二分查找

6.深度优先&广度优先

7.双指针

8.滑动窗口

9.位运算

10.递归&分治

11剪枝&回溯

12.堆

13.单调栈

14.排序算法

15.链表

16.set&map

17.栈

18.队列

19.数组

20.字符串

21.树

22.字典树

23.并查集

24.其他类型题

最后编辑于:2025-06-15 10:05:05


喜欢的朋友记得点赞、收藏、关注哦!!!

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

相关文章:

  • 游戏玩法的专利博弈
  • 大话数据结构之 <链表>(C语言)
  • 使用 keytool 在服务器上导入证书操作指南(SSL 证书验证错误处理)
  • 【DOCKER】-4 dockerfile镜像管理
  • Python数据容器-通用功能
  • grpo nl2sql qwen3 模型强化学习训练有效果的成立条件有哪些
  • java--ThreadLocal创建以及get源码解析
  • 131. Java 泛型 - 目标类型与泛型推断
  • RNN(循环神经网络)
  • js与vue基础学习
  • Cesium源码打包
  • 从数据库到播放器:Java视频续播功能完整实现解析
  • Netty编程模型介绍
  • 聚宽sql数据库传递
  • 【WPF】WPF 自定义控件 实战详解,含命令实现
  • Node.js + Express的数据库AB View切换方案设计
  • 渗透笔记1-4
  • vim扩展
  • Spring Boot Cucumber 测试报告嵌入方法
  • Linux 基础命令详解:从入门到实践(1)
  • 微前端框架深度对决:qiankun、micro-app、wujie 技术内幕与架构选型指南
  • MFC UI表格制作从专家到入门
  • MyBatis 在执行 SQL 时找不到名为 name 的参数
  • Unsloth 实战:DeepSeek-R1 模型高效微调指南(下篇)
  • LeetCode 424.替换后的最长重复字符
  • Android展示加载PDF
  • 深入学习前端 Proxy 和 Reflect:现代 JavaScript 元编程核心
  • HarmonyOS应用无响应(AppFreeze)深度解析:从检测原理到问题定位
  • 深入理解Transformer:编码器与解码器的核心原理与实现
  • C++ STL算法