动态规划爬楼梯(为什么到i级的方法=i-1级的方法+到i-2级的方法)

简介: 想一想你现在就站在第i-1级台阶上,到达这第i-1级的台阶有100种方法,每一种方法都走到这里(第i-1级台阶),这100种方法中每一种方法都差一步就到第i级台阶了。

动态规划爬楼梯(为什么到i级的方法=到i-1级的方法+到i-2级的方法)

先附个原题

2345_image_file_copy_52.jpg

      初学动态规划,“爬楼梯”是必不可少的,但是相信有好多人都不理解问什么可以直接把变为斐波那契数列进而用到i-1级的方法+到i-2级的方法来求得到第i级台阶的方法。

      这是为什么呢?

     Because 最后一下确定了

如何理解呢?

(1)首先最后一步只有两种可能,①要么迈1级台阶②要么迈2级台阶

(2)那么到某级的方法就=所有最后迈1级台阶的方法+所有最后迈2级的方法。

(3)所有最后迈1级台阶的方法在dp[i-1],所有最后迈2级台阶的方法在dp[i-2]。(以到i级为例)


相关文章
|
7月前
|
算法
2017级《算法设计与分析》--实验1--分治算法-骨牌铺方格
2017级《算法设计与分析》--实验1--分治算法-骨牌铺方格
|
7月前
|
算法
2017级《算法设计与分析》--实验1--分治算法
2017级《算法设计与分析》--实验1--分治算法
|
2月前
|
算法 Java 程序员
【算法每日一练及解题思路】有n级台阶,一次只能上1级或2级,共有多少种走法?
本文深入解析了“爬楼梯问题”,探讨了递归与迭代两种解法,并提供了Java代码实现。通过分析问题本质,帮助读者理解动态规划技巧,提高解决实际编程问题的能力。关键词:Java, 算法, 动态规划, 爬楼梯问题, 递归, 迭代。
95 0
|
5月前
|
算法 Java 调度
对偶问题理论及在优化中的应用实例
对偶问题理论及在优化中的应用实例
|
自然语言处理 算法 C++
探索动态规划:优化问题求解的高效策略
探索动态规划:优化问题求解的高效策略
70 0
|
算法
【浅谈算法】二分查找(保姆级)
【浅谈算法】二分查找(保姆级)
39 0
|
人工智能 JavaScript C++
蓝桥杯统计子矩阵前缀和C++(附图文超详细讲解)(保姆级)
蓝桥杯统计子矩阵前缀和C++(附图文超详细讲解)(保姆级)
|
算法 C++
详细实例说明+典型案例实现 对枚举法进行全面分析 | C++
简单的来说,算法就是用计算机程序代码来实现数学思想的一种方法。学习算法就是为了了解它们在计算机中如何演算,以及在当今的信息时代,它们是如何在各个层面上影响我们的日常生活的,从而提高我们的逻辑思维能力和处理实际问题的能力。善用算法、巧用算法,是培养程序设计逻辑的重中之重,许多实际的问题都可用多个可行的算法来解决, 但是要从中找出最优的解决算法却是一项挑战。
216 0
详细实例说明+典型案例实现 对枚举法进行全面分析 | C++
|
存储 算法 C++
详细实例说明+典型案例实现 对动态规划法进行全面分析 | C++
在上面我们通过通俗易懂的例子对动态规划法进行了理解,也用该方法的核心对斐波那契数列进行了优化。动态规划是分治法的一个延伸,它增加了记忆机制的使用,将处理过的子问题的答案记录下来,从而避免去重复计算。
435 0
详细实例说明+典型案例实现 对动态规划法进行全面分析 | C++
|
算法 C++
详细实例说明+典型案例实现 对迭代法进行全面分析 | C++
上面我们对迭代算法进行了细致的举例和经典代码的讲解。使用该算法时,要注意体会我们所要求的东西它在程序代码中的更新迭代过程,理解核心思想从而去更好的运用这种常用的经典算法解决常规问题。
467 0
详细实例说明+典型案例实现 对迭代法进行全面分析 | C++