首页 > 代码库 > Leetcode-Climbing Stairs

Leetcode-Climbing Stairs

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?

Analysis:

d[i] = d[i-1]+d[i-2]. i steps is the way of reaching i-1 steps + the way of reaching i-2 steps.

Solution:

 1 public class Solution { 2     public int climbStairs(int n) { 3         if (n==0) return 0; 4         if (n==1) return 1; 5         if (n==2) return 2; 6      7         int first = 1; 8         int second = 2; 9         for (int i=3;i<=n;i++){10             int newVal = first+second;11             first=second;12             second = newVal;13         }14 15         return second;16         17     }18 }

 

Leetcode-Climbing Stairs