python3 斐波那契数列以及爬楼梯
2021/9/6 22:08:17
本文主要是介绍python3 斐波那契数列以及爬楼梯,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
动态规划算法
本质上是这步的“价值”由上一步决定,比如求公共最长子序列:
例子(来源 算法图解)
用户在使用搜索引擎,比如搜索fosh。那我们就要猜测用户是想要搜索fish还是fort.怎么求取公共最长子序列。做一个4*4网格,每个网格的计算方式都由上一格来决定。
if word_a[i] == word_b[j]: cell[i][j] = cell[i-1][j-1] + 1 else: cell[i][j] = max(cell[i-1][j], cell[i][j-1])
最终填满方格的结果就是答案。
leetcode 70题 爬楼梯 经典题型
n个台阶,一次走1阶或者2阶。共有几种走法?
其实这个是一个斐波那契数列,n=1的时候1种,n=2时2种。在n阶时,要么就从n-1上来,要么就从n-2上来,所以n时的方法数就是n-1和n-2两个台阶上方法的和。
class Solution: def climbStairs(self, n: int) -> int: if n <= 2: return n dp = [0] * n dp[0] = 1 dp[1] = 2 for i in range(2, n): dp[i] = dp[i-1] + dp[i-2] return dp[n-1]
或者使用经典的做法:(简化到最优了)
class Solution: def climbStairs(self, n: int) -> int: a = 1 b = 1 for i in range(1, n+1): a, b = b, a + b #此时i=1,a=1 i=2,a=2 i=3,a=3 return a
这篇关于python3 斐波那契数列以及爬楼梯的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南