java 动态规划解决上楼梯问题
Posted livalon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 动态规划解决上楼梯问题相关的知识,希望对你有一定的参考价值。
问题描述:
你正在爬楼梯。 它需要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); } }
以上是关于java 动态规划解决上楼梯问题的主要内容,如果未能解决你的问题,请参考以下文章
代码随想录|day38|动态规划part01● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯