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];

    }

}

 

你可能感兴趣的:(LeetCode)