问题描述:
你正在爬楼梯。 它需要n步才能达到顶峰。
每次你可以爬1或2步。 您可以通过多少不同的方式登顶?
注意:给定n将是一个正整数。
Example 1:
Input: 2 Output: 2 Explanation: There are two ways to climb to the top. 1. 1 step + 1 step 2. 2 steps
Example 2:
Input: 3 Output: 3 Explanation: There are three ways to climb to the top. 1. 1 step + 1 step + 1 step 2. 1 step + 2 steps 3. 2 steps + 1 step
动态规划公式:(在i=0,1,2时不适用)
dp[i]=dp[i-1]+dp[i-2]
代码:
//dp[i]=dp[i-1]+dp[i-2] class Solution { public static int climbStairs(int n) { int[] res = new int[n+1]; for(int i=0;i<n+1;i++){ if(i==0){ res[i] = 0; } else if(i==1){ res[i] = 1; }else if(i==2){ res[i] = 2; }else{ res[i] = res[i-1] + res[i-2]; } //System.out.println(res[i]); } return res[n]; } public static void main(String[] args){ int a = 6; int res = climbStairs(a); System.out.println(res); } }