70. 爬楼梯

Willow ·
更新时间:2024-09-21
· 987 次阅读

题目

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

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

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

示例 1:

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

示例 2:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/climbing-stairs

思路

对于这样一个问题,我们先来思考下能否递归的解决,它内部是否有递归的结构。

我们自顶向下的思考问题,直接考虑第nnn阶台阶,并且假设它下面的n−1n-1n−1阶,n−2n-2n−2阶等子问题都已经解决了。

如果我们要想爬上nnn阶台阶,因为一次要么爬111阶,要么爬222阶,所以爬nnn阶台阶有两种可能。

从n−1n-1n−1阶再爬111阶或者从n−2n-2n−2阶再爬222阶。

在这里插入图片描述

不难看出这是一个递归问题,我们把问题转换为爬n−1n-1n−1阶有多少种方法和爬n−2n-2n−2阶有多少种方法。然后把这两个问题的答案相加就好了。这样把一个大的问题转换为两个小问题。

博客专家 原创文章 163获赞 247访问量 17万+ 关注 私信 展开阅读全文
作者:愤怒的可乐



楼梯

需要 登录 后方可回复, 如果你还没有账号请 注册新账号