18.python学习之数据结构
数据结构也就是存储数据的结构,我们对数据组织的方式就叫做数据结构。
数据结构解决的就是一组数据如何保存,保存形式是怎么样的。
python最新学习宝典系列文章
- 01.python学习之基础
- 02.python学习之文件操作
- 03.python学习之模块与包
- 04.python学习之数据类型
- 05.python学习之元类
- 06.python学习之内存管理与垃圾回收机制
- 07.python学习之函数
- 08.python学习之设计模式
- 09.python学习之面向对象
- 10.python学习之正则表达式
- 11.python学习之系统编程
- 12.python学习之网络编程
- 13.python学习之Flask
- 14.python学习之Django
- 15.python学习之爬虫
- 16.python学习之MySQL
- 17.python学习之Redis
- 18.python学习之数据结构
- 99.python学习之常规题
- 100.python学习之常见题
斐波那契数列
数列定义:
f 0 = f 1 = 1
f n = f (n-1) + f (n-2)
根据定义
速度很慢,另外(暴栈注意!⚠ ) O(fibonacci n)
1 | def fibonacci(n): |
1
状态/循环
1 | def fibonacci(n): |
89
递归
1 | def fibonacci(n): |
89
青蛙跳台阶问题
一只青蛙要跳上n层高的台阶,一次能跳一级,也可以跳两级,请问这只青蛙有多少种跳上这个n层台阶的方法?
分析发现这个还是一个斐波那契数列
递归
设青蛙跳上n级台阶有f(n)种方法,把这n种方法分为两大类,第一种最后一次跳了一级台阶,这类共有f(n-1)种,第二种最后一次跳了两级台阶,这种方法共有f(n-2)种,则得出递推公式f(n)=f(n-1) + f(n-2),显然f(1)=1,f(2)=2,这种方法虽然代码简单,但效率低,会超出时间上限
1 | class Solution: |
89
用循环来代替递归
1 | class Solution: |
89
python最新学习宝典系列文章
- 01.python学习之基础
- 02.python学习之文件操作
- 03.python学习之模块与包
- 04.python学习之数据类型
- 05.python学习之元类
- 06.python学习之内存管理与垃圾回收机制
- 07.python学习之函数
- 08.python学习之设计模式
- 09.python学习之面向对象
- 10.python学习之正则表达式
- 11.python学习之系统编程
- 12.python学习之网络编程
- 13.python学习之Flask
- 14.python学习之Django
- 15.python学习之爬虫
- 16.python学习之MySQL
- 17.python学习之Redis
- 18.python学习之数据结构
- 99.python学习之常规题
- 100.python学习之常见题