动态规划(斐波那契系列)---爬楼梯
Posted yjxyy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划(斐波那契系列)---爬楼梯相关的知识,希望对你有一定的参考价值。
动态规划
??递归和动态规划都是将原问题拆成多个子问题然后求解,他们之间最本质的区别是,动态规划保留了子问题的解,避免了重复计算。
爬楼梯
题目描述:
??有 N 阶楼梯,每次可以上一阶或者两阶,求有多少种上楼梯的方法。
思路分析:
??定义一个dp数组存储上楼梯的方法数,dp[i]表示走到第i层楼的方法数,第i层楼梯可以从第i-1层和i-2个楼梯再走一步到达。那么走到第i层楼梯的方式为走到第i-1层的方式和第i-2层的方式和。
dp[ i ]=dp[i-1]+dp[i-2]
代码:
class Solution
public int climbStairs(int n)
int []dp=new int[n+1];
if(n==1)
return 1;
if(n==2)
return 2;
dp[1]=1;
dp[2]=2;
for(int i=3;i<=n;i++)
dp[i]=dp[i-1]+dp[i-2];
return dp[n];
以上是关于动态规划(斐波那契系列)---爬楼梯的主要内容,如果未能解决你的问题,请参考以下文章
代码随想录|day38|动态规划part01● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯