思路:爬n阶台阶,有2种方法,先爬n-1阶,或者先爬n-2阶。n=1时,只有1种,n=2时有2种。递归计算
public class Solution {
public int climbStairs(int n) {
if (n<=2) {
return n;
}else {
int[] sk=new int[n];
sk[0]=1;
sk[1]=2;
for (int i =2; i < sk.length; i++) {
sk[i]=sk[i-1]+sk[i-2];
}
return sk[n-1];
}
}
}
验证的时候发现在n=44时报错。查了下,当i=12或者13时。红框部分会超出int上限变成负值,所以仅仅在n<=43时匹配。