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?
Solution: Climd one step from last stair or climb 2 steps from the last last stair.
1 class Solution { 2 public: 3 int climbStairs(int n) { 4 int last = 1; 5 int lastlast = 1; 6 for(int i = 2; i <= n; i++) { 7 int step = last + lastlast; 8 lastlast = last; 9 last = step; 10 } 11 return last; 12 } 13 };