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?
DP方法:
step[n] = step[n-1]+step[n-2];
1 class Solution { 2 public: 3 int climbStairs(int n) { 4 vector<int> step(n,0); 5 step[0] = 1; 6 step[1] = 2; 7 for(int i = 2;i<n;i++){ 8 step[i] = step[i-1]+step[i-2]; 9 } 10 return step[n-1]; 11 } 12 };