美文网首页
LeetCode 070 爬楼梯

LeetCode 070 爬楼梯

作者: 洛珎 | 来源:发表于2019-12-12 11:47 被阅读0次

题目

思路:将整个问题拆分成一个一个的小问题,题目中n为正整数,n=0时无意义

我们发现走N阶台阶,最后一步必定是1步或者2步到达。

那么N阶台阶的走法不就相当于最后走一步和最后走两步的走法的总和吗?

换一种方式来说,我们取一个中间态:如果总共有3级台阶,3级台阶的走法只会存在两种大的可能:1+2、2+1、1+1+1,即3级台阶的所有走法就是走了1阶台阶的走法加上走了2阶台阶的走法,而1阶台阶的走法只有一种,2阶台阶的走法有2种,所有3阶台阶的走法有3种,我们使用一种更通用的方式进行表达的话就是所谓的状态转换方程:

dp[n]=dp[i-1]+dp[i-2]

代码实现

动态规划:时间复杂度为O(n)

1.把大的问题分解成小的问题,从小的问题中推导出大的问题

2.将小问题的解记录下来,下次使用不需要重复计算

相比递归方法:时间复杂度O(2 ^n),不建议

相关文章

网友评论

      本文标题:LeetCode 070 爬楼梯

      本文链接:https://www.haomeiwen.com/subject/wqozgctx.html