假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
    每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
    注意:给定 n 是一个正整数。

    分析:爬楼梯、青蛙跳台阶等等也是经典的动态规划题目
    第一步:dp[i]是什么?答:dp[i]是第i阶楼梯一共有几种方法。
    第二步:怎么得到?答:因为可以爬1阶或2阶,所以靠前一阶和前二阶楼梯相加可得
    第三部:初值? 答:第一阶有一种方法,第二阶有2种方法,可以这样设,但也可以通过第0阶与第1阶,但为了让第2阶有2种方法,第0阶需设置为1;

    参考代码:
    public int climbStairs(int n) {
    if(n==0) return 0;
    if(n==1) return 1;
    int[] dp = new int[n+1];
    dp[0]=1;
    dp[1]=1;
    for(int i=2;i<=n;i++){
    dp[i]=dp[i-1]+dp[i-2];
    }
    return dp[n];
    }