1阶 + 1 阶、1 阶 + 2 阶、2 阶 + 1 阶 四阶楼梯的走法有 5种: 1阶 + 1 阶 + 1 阶 + 1 阶、1 阶 + 2 阶 + 1 阶、1 阶 + 1 阶 + 2 阶、2 阶 + 2 阶、2 阶 + 1 阶 + 1 阶 …… 综上,我们可以发现 n 阶楼梯有 m 种爬法,且 m 符合斐波那契数列规律,所以直接上代码...
算法实例 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?(n为正整数) 思路一:递归: 时间复杂度:O(2^n) 空间复杂度:O(n) varclimbStairs=function(n){if(n==1||n==2)returnn;returnclimbStairs(n-1)+climbStairs(n-2)}; 总结:...
classSolution{public:intfib(intN){if(N <=1)returnN;intdp[2];dp[0] =0;dp[1] =1;for(inti =2; i <= N; i++) {intsum = dp[0] + dp[1];dp[0] = dp[1];dp[1] = sum;}returndp[1];}}; 71.爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 ...
【算法笔试刷题第七集:递推算法】1、LeetCode70.爬楼梯, 视频播放量 43、弹幕量 1、点赞数 1、投硬币枚数 0、收藏人数 1、转发人数 1, 视频作者 海贼宝藏哔哩学院, 作者简介 专注IT,相关视频:【算法笔试刷题第七集:递推算法】9、LeetCode198打家劫舍,【算法笔试刷题第
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶...
爬楼梯-自底向上-动态规划解法(优化空间复杂度) 既然我们要算上层的结果,必须要先递归得到下层的结果,然后再整合得回上层结果(上-下-上),为什么不干脆反过来,我先拿到下层结果,再直接递推到上层,不就省了第一步从上到下的递归步骤? 看结果,是不是很像斐波那契数列,只不过它从1和2开始而已。这时,我们的实现:...
爬楼梯算法(斐波那契数列) 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1阶 + 1 阶...
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 五部曲分析 分析思路图如下 1.确定DP数组的含义: dp[n] 为走到第n阶存在的方法数。 (因此dp[0]无意义,n=0表示差0阶走到目的地,也就是已经在目的地,所以n=0被视为不存在) ...
f(1) = 1 # 爬一级楼梯只有1种方法 步骤3:算法实现。 接下来将介绍python的实现代码如下: import numpy as np MAX_STEP = 20 dp = np.zeros((MAX_STEP,), dtype=np.int) dp[1] = 1 dp[2] = 2 for i in range(3, MAX_STEP):
前端算法-爬楼梯 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 输入: n = 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶...