爬楼梯
题目描述:有 N 阶楼梯,每次可以上一阶或者两阶,求有多少种上楼梯的方法。
思路:每次可以上一阶或者两阶台阶,当台阶是1的时候,一共有1种方法,当台阶为2时,一共有两种方法。当台阶为i时,定义台阶为i的方法数是dp[i],此时上台阶是i-1和i-2再走一步即可,所以dp[i]=dp[i-1]+dp[i-2]
public class Main {
public static int climbM(int n){
if(n<=2){
return n;
}
int pre2=1,pre1=2;
for (int i =2; i <n ; i++) {
int cur=pre1+pre2;
pre2=pre1;
pre1=cur;
}
return pre1;
}
public static void main(String[] args) {
System.out.println(climbM(1));
}
}