Leetcode - 70 Climbing Stairs (Easy)
题目描述:共有 n 个台阶,每次只能往上爬 1 个或者 2 个台阶,求爬 n 个台阶共有几种不同的爬法。
Input: 2
Output: 2
Explanation: There are two ways to climb to the top.
1. 1 step + 1 step
2. 2 steps
解题思路:
首先想到的是暴力求解,使用递归的方法依次计算,模拟向上爬 1 步与爬 2 步的情况,使用递归方法的话就不可避免的产生重复计算,时间复杂度 O(2^n),当 n = 44 时,Leetcode 就会提示 「Time Limit Exceeded」。
public int climbStairs(int n) {
return climb_Stairs(0, n);
}
public int climb_Stairs(int i, int n) {
if (i > n) return 0;
if (i == n) return 1;
return climb_Stairs(i +