Difficulty: Easy
You are climbing a stair case. It takes n steps to reach to the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
Subscribe to see which companies asked this question
算法思想:
第n步的方式=第n-1步的方式+第n-2步的方式,算法复杂度O(n)
int climbStairs(int n) {
if(n==1) return 1;
if(n==2) return 2;
int a[3]={1,2,3};
for(int i=2;i<n;i++)
a[i%3]=a[(i-1)%3]+a[(i-2)%3];
return a[(n-1)%3];
}