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

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

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

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.dtcms.com/a/278565.html

相关文章:

  • 注解@Autowired和@Resource的区别
  • CentOS7 OpenSSL升级1.1.1t;OpenSSH 升级 9.8p1 保姆级教程
  • jenkins 流水线比较简单直观的
  • 《每日AI-人工智能-编程日报》--2025年7月14日
  • Spring Boot - Spring Boot 集成 MyBatis 分页实现 PageHelper
  • 17.Python 中的相等性比较:== vs is
  • 具身智能零碎知识点(五):VAE中对使用KL散度的理解
  • 【Java EE初阶 --- 网络原理】初识网络
  • flink 和 spark 架构的对比
  • 如何在 Java 中使用 Redis 实现缓存优化?
  • 4G模块 A7670发送英文短信到手机
  • 11.设置 Python 3 和 pip 3 为默认版本
  • Google的Mediapipe开源框架介绍及使用说明
  • 基于浅切多道的晶圆切割 TTV 均匀性控制与应力释放技术
  • python学智能算法(十八)|SVM基础概念-向量点积
  • CentOS 安装jenkins笔记
  • windows在anaconda中下载安装fasttext
  • jenkins搭建笔记
  • .gitignore文件中的各种写法详解
  • JMeter 连接与配置 ClickHouse 数据库
  • JavaScript 高级封装方法指南
  • 将CSDN文章导出为PDF
  • RabbitMQ的介绍与安装
  • 嵌入式小记
  • 亚马逊自养号技术栈解析:从环境隔离到AI行为模拟的实战指南
  • C++编程语言:标准库:内存和资源管理(Bjarne Stroustrup)
  • 对偶原理与蕴含定理
  • UART寄存器介绍
  • 解决安装 make 时 “configure: error: C compiler cannot create executables” 报错
  • 用于监测线性基础设施的分布式声学传感:现状与趋势