「LeetCode」70-爬楼梯⚡️

简介: 「LeetCode」70-爬楼梯⚡️

image.png

前言🌧️


算法,对前端人来说陌生又熟悉,很多时候我们都不会像后端工程师一样重视这项能力。但事实上,算法对每一个程序员来说,都有着不可撼动的地位。


因为开发的过程就是把实际问题转换成计算机可识别的指令,也就是《数据结构》里说的,「设计出数据结构,在施加以算法就行了」。


编写指令的好坏,会直接影响到程序的性能优劣,而指令又由数据结构和算法组成,所以数据结构和算法的设计基本上决定了最终程序的好坏


题目🦀



70. 爬楼梯


难度简单


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


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


示例 1:


输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶


示例 2:


输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶


提示:


  • 1 <= n <= 45

解题思路🌵



  • 由于是叠加问题
  • 采用动态规划来解决此类问题


解题步骤🐂



  • 先确定好dep的规律
  • 当前台阶的走法就等于dep[n-2]+dep[n-1]
  • 循环遍历即可求解


源码🔥



/**
 * @param {number} n
 * @return {number}
 */
var climbStairs = function(n) {
 let dep =[1,1]
    for(let i=2;i<=n;i++){
        dep[i]=dep[i-1]+dep[i-2]
    }
    return dep[n]
};

时间复杂度:O(n) (n为字符串的长度)


空间复杂度:O(1)


结束语🌞


image.png


那么鱼鱼的LeetCode算法篇的「LeetCode」70-爬楼梯⚡️就结束了,算法这个东西没有捷径,只能多写多练,多总结,文章的目的其实很简单,就是督促自己去完成算法练习并总结和输出,菜不菜不重要,但是热爱🔥,喜欢大家能够喜欢我的短文,也希望通过文章认识更多志同道合的朋友,如果你也喜欢折腾,欢迎加我好友,一起沙雕,一起进步

相关文章
|
4月前
leetcode-70:爬楼梯
leetcode-70:爬楼梯
21 0
|
8月前
leetcode:70. 爬楼梯
此题运用递归思想。当只有1个台阶,那么只有1种方法爬到楼顶——跨一个台阶;当有2个台阶时,有2种方法爬到楼顶——跨一个台阶跨两次或直接跨两个台阶。当有3个台阶或更多台阶时,则可以选择先跨一个台阶还是先跨两个台阶,剩下的台阶再进行选择是先跨一个台阶还是先跨两个台阶……从而实现递归
25 0
爬楼梯(LeetCode-70)
爬楼梯(LeetCode-70)
69 0
Leetcode 爬楼梯
假设你正在爬楼梯。需要 `n` 阶你才能到达楼顶。 每次你可以爬 `1` 或 `2` 个台阶。你有多少种不同的方法可以爬到楼顶呢?
79 0
|
算法 前端开发 程序员
「LeetCode」53-最大子数组和⚡️
「LeetCode」53-最大子数组和⚡️
91 0
「LeetCode」53-最大子数组和⚡️
|
算法 前端开发 程序员
「LeetCode」54-螺旋矩阵⚡️
「LeetCode」54-螺旋矩阵⚡️
101 0
「LeetCode」54-螺旋矩阵⚡️
|
算法 前端开发 程序员
「LeetCode」18-四数之和⚡️
「LeetCode」18-四数之和⚡️
98 0
「LeetCode」18-四数之和⚡️
|
算法 前端开发 程序员
「LeetCode」剑指Offer-58-II左旋转字符串⚡️
「LeetCode」剑指Offer-58-II左旋转字符串⚡️
128 0
「LeetCode」剑指Offer-58-II左旋转字符串⚡️