方法一:暴力法
算法
在暴力法中,我們將會把所有可能爬的階數進行組合,也就是 1 和 2 。而在每一步中我們都會繼續調用 climbStairsclimbStairs 這個函數模擬爬 11 階和 22 階的情形,並返回兩個函數的返回值之和。
public class Solution { public int climbStairs(int n) { 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 + 1, n) + climb_Stairs(i + 2, n); } }
方法二:斐波那契數
public class Solution { public int climbStairs(int n) { if (n == 1) { return 1; } int first = 1; int second = 2; for (int i = 3; i <= n; i++) { int third = first + second; first = second; second = third; } return second; } }