LeetCode 70 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?

经典动态规划的问题,如果到最后一个的话,有从倒数第一节和倒数第二节,两种走到的放法。

public class Solution{
    public int climbStairs(int n){
        if(n == 0 || n == 1 || n ==2){
            return n;
        }

        int[] steps = new int[n+1];
        steps[0] = 0;
        steps[1] = 1;
        steps[2] = 2;

        for(int i = 3; i <= n ; i++){
            steps[i] = steps[i-1] + steps[i-2];
        }

        return steps[n];
    }
}
原文地址:https://www.cnblogs.com/hewx/p/4532427.html