题意:每次可以走一步或者两步,给定一个整数问有多少种走法
这道题有点像斐波那契
public int climbStairs(int n) {
// base cases
if(n <= 0) return 0;
if(n == 1) return 1;
if(n == 2) return 2;
int one_step_before = 2;
int two_steps_before = 1;
int all_ways = 0;
for(int i=2; i<n; i++){
// all_ways = 2+1 = 3//2,3,5,....
all_ways = one_step_before + two_steps_before;
//two_steps_before = 2
two_steps_before = one_step_before;
//one_step_before = 3
one_step_before = all_ways;
}
return all_ways;
}