Python数据结构与算法
列举了Python数据结构与其使用场景以及对应的算法题
JTOOP
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python数据结构和算法笔记九:树
文章目录树树的概念树的分类代码表示二叉树二叉树的三种遍历顺序二叉树练习二叉树的后序遍历二叉树的层序遍历翻转二叉树二叉树的最大深度从前序与中序遍历序列构造二叉树二叉树总结 树 一种包括节点(nodes)和边(edges)的拥有层级关系的结构 树的形式和家谱非常类似 树的概念 1、根节点(root):树的最上层的节点,任何非空的树都有一个节点 2、路径(path):从起始节点到终止节点经历过的边 3、父亲(parent):除了根节点,每个节点的上一层连接的节点就是它的父亲 4、孩子(children):每原创 2020-08-20 12:44:58 · 360 阅读 · 0 评论 -
Python数据结构和算法笔记八:递归
文章目录递归递归的概念递归的三个特点解决递归问题的顺序(重点*******)掌握递归函数的编写递归练习斐波那契数反转链表全排列 递归 详细讲解:https://www.zhihu.com/question/31412436/answer/683820765 递归的概念 1、递归:自己调用自己就是递归。(递归小套娃) 2、每进入一个函数调用,都会压栈,所以递归深度太深,则会出现栈溢出 3、同一个变量名在不同的函数栈,值是不同的 递归的三个特点 base case:递归必须包含一个基础的出口,问题小到一定原创 2020-08-20 12:43:05 · 277 阅读 · 0 评论 -
Python数据结构和算法笔记七:哈希表
文章目录哈希表概念疑问哈希表的应用哈希表的练习两个数组的交集[两个数组的交集 II](https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/)LRU缓存机制 哈希表 概念 1、哈希表是一种快速查找结构 2、经常用来存储“键值对”,key/value值 3、哈希表的查找时间近似为O(1),几乎可以瞬间查找到一个值 4、Java HashMap,Python的dict/set底层就是使用哈希表实现的,我们可以快速查找一个key的值 疑问原创 2020-08-20 12:42:05 · 261 阅读 · 0 评论 -
Python数据结构和算法笔记六:队列和栈
文章目录队列和栈队列栈栈练习用栈实现队列最小栈有效的括号 队列和栈 队列可视化网站 deque Python collections模块自带了deque实现 底层基于双端链表实现 可以高效地在两头增删元素,O(1) 可以利用deque实现队列和栈 队列 FIFO-first in first out,先进先出结构,类似于排队 最先插入的元素最先出来,可以使用数组、链表等结构可以用来实现队列 队列:queue,双端队列:double-ended queue 下面使用deque(pyt原创 2020-08-20 12:37:28 · 230 阅读 · 0 评论 -
Python数据结构和算法笔记五:链表
文章目录链表链表的概念概念不同的链表类型单链表(linked list)双链表(double linked list)链表练习如何将一个list构造一个链表并编写一个打印单链表的函数反转链表合并两个排序的链表相交链表环形链表两数相加 链表 链表的概念概念 链表是一种常见的链式结构(linked list) 链表由节点链接而成 每个链表的节点包含数据成员和指向下一个节点的指针 不同的链表类型 单链表(linked list) 特点: 1、可以方便地追加元素到链表尾部,O(1) 2、不支持随机下标访问原创 2020-08-20 12:36:14 · 331 阅读 · 0 评论 -
Python数据结构和算法笔记四:列表list
文章目录列表listlist练习两数之和按奇偶排序数组[搜索二维矩阵 II](https://leetcode-cn.com/problems/search-a-2d-matrix-ii/)移除元素合并两个有序数组 列表list 时间复杂度: 查找元素,通过下标查找:O(1) 1、支持动态扩容的线性结构,下标访问 2、超出容量之后,会开辟新内存,并复制旧数据 3、Python list可以包含不同的数据类型(元素的类型可以是list、string、tuple…) 4、业务代码和题目当原创 2020-08-20 12:35:09 · 383 阅读 · 0 评论 -
Python数据结构和算法笔记三:数组
文章目录数组array 数组array 1、内存连续,类型相同的线性结构,通过下标O(1)访问 2、Python提供了array模块,但是其实用的并不多 from array import array 日常一般用list原创 2020-08-20 12:33:55 · 183 阅读 · 0 评论 -
Python数据结构和算法笔记二:Python抽象类型
文章目录Python抽象类型如何使用面向对象的方式实现数据结构 Python抽象类型 面向对象编程 在Python中所有东西都可以看成是一个对象 封装继承多态 封装:公开对外接口,隐藏实现细节 继承:复用现有类的数据和行为 多态:同一操作作用在不同的对象,可以有不同的解释和产生不同的执行结果 如何使用面向对象的方式实现数据结构 掌握抽象数据类型的概念(ADT:Abstract Data Type) 通过“组合”或者“继承”已有数据结构实现新的结构 经常使用“组合”的方式实现新类型 学会原创 2020-08-20 12:32:43 · 271 阅读 · 0 评论 -
Python数据结构和算法笔记一:思路介绍+实用网站/工具
文章目录解决题目的思路时间复杂度重要工具... 解决题目的思路 1、暴力破解:使用笨方法,不考虑时间复杂度和空间复杂度,使用for循环外加创建新的数据结构 2、迭代方法:使用指针,一个指针搞定不了就是用两个,两个不行就三个…,多使用中间变量存储数据,多创建新的数据结构 3、递归方法(动态规划) 时间复杂度 优劣排序:O(1) > O(logn) > O(n) > O(nlogn) > O(n^2) > O(2^n) > O(n!) 重要工具… python代码数原创 2020-08-20 12:31:42 · 199 阅读 · 0 评论 -
数据结构与算法:单链表插入删除操作的时间复杂度
https://blog.youkuaiyun.com/qq_44024359/article/details/102995080转载 2020-08-18 14:03:17 · 2376 阅读 · 0 评论 -
小明有一些气球想挂在墙上装饰,他希望相同颜色的气球不要挂在一起,写一个算法帮他得出一种可行的挂气球方式,自行定义函数,输入和返回,如果无法做到相同颜色的气球不要挂在一起,请定义合适的一场方式返回
题目: 小明有一些气球想挂在墙上装饰,他希望相同颜色的气球不要挂在一起,写一个算法帮他得出一种可行的挂气球方式,自行定义函数,输入和返回,如果无法做到相同颜色的气球不要挂在一起,请定义合适的一场方式返回 思路: 说实话,一开始看到这个题目想到的思路是定义一个列表,然后判断每次小明要挂的气球颜色是否和之前挂的颜色相同,从而定义返回值。 但网上找到的答案确是,小明给你一袋气球,其中的颜色和对应的颜色数量都是知道的。然后现在写个算法帮他把气球挂在墙上且满足相同颜色的气球不挂在一起 说明想法还是有些局限外加审题不原创 2020-07-13 20:08:43 · 562 阅读 · 0 评论 -
Python数据结构和算法笔记总结
文章目录Python数据结构和算法笔记解决题目的思路时间复杂度重要工具...Python抽象类型如何使用面向对象的方式实现数据结构Python数据结构数组array列表listlist练习两数之和按奇偶排序数组[搜索二维矩阵 II](https://leetcode-cn.com/problems/search-a-2d-matrix-ii/)移除元素合并两个有序数组链表链表的概念概念不同的链表类型单链表(linked list)双链表(double linked list)链表练习如何将一个list构造一原创 2020-08-17 00:32:34 · 908 阅读 · 0 评论 -
数据结构与算法:常用数据结构增删查时间复杂度
各个数据结构对应的时间复杂度:https://blog.youkuaiyun.com/MOMONGA/article/details/51578602转载 2020-08-16 12:30:44 · 258 阅读 · 0 评论
分享