java 爬楼梯算法_9.1 爬楼梯

:-: 9.1 爬楼梯

* * * * *

**题干:**

假设你正在爬楼梯。需要 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 阶

~~~

**题目分析:**

如果放在中学课堂之上,这就是一个典型的排列组合问题,所以我们可以采用排列组合的方式来解决这个问题,但是这个方法处理次数在随着n的增加,急剧增长,虽然现在我们的电脑处理速度快,但是我们也不应该这样伤害它呀!我们再来分析一下,当n = 1的时候,f(1) = 1;当n = 2的时候,f(2) = 2;当n = 3的时候,f(3) = 3;当n = 4的时候,f(4) = 5,我们发现f(n) = f(n - 1) + f(n - 2)。这个时候我们可以

你可能感兴趣的:(java,爬楼梯算法)