题目:爬楼梯
思路: 比如 n=10;那么有两种情况:
1、 9 + 1 = 10
2、 8 + 2 = 10
说明从第9或者第8个台阶可以直接跨到第10个台阶,所以跨到第10个台阶的方法数 = 跨到第9个台阶的方法数 + 跨到第8个台阶的方法数 …依次类推即可
class Solution {
public int climbStairs(int n) {
int[] arr = new int[n+1];
arr[0] = 1;
for(int i=1; i<=n; i++){
if(i-1 >= 0){
arr[i] = arr[i-1];
}
if(i-2 >= 0){
arr[i] += arr[i-2];
}
}
return arr[n];
}
}