leetcode经典动态规划解题报告

leetcode70 爬楼梯题目描述 123假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 解答:递推公式: 设f(n)为n阶楼梯的爬法f(n)=f(n-1)+f(n-2) n>2f(n)=1 n=1f(n)=2 n=2到达第n阶楼梯,有两种方法,一种是从第n-1阶楼梯,走一步到;另一种是从n-2阶楼梯,走两步到。 根据以上的递归公式,我们很容易写出下面的代码: 12345678910111213public int climbStairs(int n) { if (n<3){ return n; } int[] dp=new int[n+1]; dp[1]=1; dp[2]=2; for(int i=3;i<=n;i++){ dp[i]=dp[i-1]+dp[i-2]; } return dp[n]; }