![](https://img-blog.csdnimg.cn/20200817233746152.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python数据结构与算法
列举了Python数据结构与其使用场景以及对应的算法题
JTOOP
这个作者很懒,什么都没留下…
展开
-
Python数据结构和算法笔记九:树
文章目录树树的概念树的分类代码表示二叉树二叉树的三种遍历顺序二叉树练习二叉树的后序遍历二叉树的层序遍历翻转二叉树二叉树的最大深度从前序与中序遍历序列构造二叉树二叉树总结树一种包括节点(nodes)和边(edges)的拥有层级关系的结构树的形式和家谱非常类似树的概念1、根节点(root):树的最上层的节点,任何非空的树都有一个节点2、路径(path):从起始节点到终止节点经历过的边3、父亲(parent):除了根节点,每个节点的上一层连接的节点就是它的父亲4、孩子(children):每原创 2020-08-20 12:44:58 · 262 阅读 · 0 评论 -
Python数据结构和算法笔记八:递归
文章目录递归递归的概念递归的三个特点解决递归问题的顺序(重点*******)掌握递归函数的编写递归练习斐波那契数反转链表全排列递归详细讲解:https://www.zhihu.com/question/31412436/answer/683820765递归的概念1、递归:自己调用自己就是递归。(递归小套娃)2、每进入一个函数调用,都会压栈,所以递归深度太深,则会出现栈溢出3、同一个变量名在不同的函数栈,值是不同的递归的三个特点base case:递归必须包含一个基础的出口,问题小到一定原创 2020-08-20 12:43:05 · 184 阅读 · 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 · 200 阅读 · 0 评论 -
Python数据结构和算法笔记六:队列和栈
文章目录队列和栈队列栈栈练习用栈实现队列最小栈有效的括号队列和栈队列可视化网站dequePython collections模块自带了deque实现底层基于双端链表实现可以高效地在两头增删元素,O(1)可以利用deque实现队列和栈队列FIFO-first in first out,先进先出结构,类似于排队最先插入的元素最先出来,可以使用数组、链表等结构可以用来实现队列队列:queue,双端队列:double-ended queue下面使用deque(pyt原创 2020-08-20 12:37:28 · 150 阅读 · 0 评论 -
Python数据结构和算法笔记五:链表
文章目录链表链表的概念概念不同的链表类型单链表(linked list)双链表(double linked list)链表练习如何将一个list构造一个链表并编写一个打印单链表的函数反转链表合并两个排序的链表相交链表环形链表两数相加链表链表的概念概念链表是一种常见的链式结构(linked list)链表由节点链接而成每个链表的节点包含数据成员和指向下一个节点的指针不同的链表类型单链表(linked list)特点:1、可以方便地追加元素到链表尾部,O(1)2、不支持随机下标访问原创 2020-08-20 12:36:14 · 229 阅读 · 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 · 301 阅读 · 0 评论 -
Python数据结构和算法笔记三:数组
文章目录数组array数组array1、内存连续,类型相同的线性结构,通过下标O(1)访问2、Python提供了array模块,但是其实用的并不多from array import array日常一般用list原创 2020-08-20 12:33:55 · 118 阅读 · 0 评论 -
Python数据结构和算法笔记二:Python抽象类型
文章目录Python抽象类型如何使用面向对象的方式实现数据结构Python抽象类型面向对象编程在Python中所有东西都可以看成是一个对象封装继承多态封装:公开对外接口,隐藏实现细节继承:复用现有类的数据和行为多态:同一操作作用在不同的对象,可以有不同的解释和产生不同的执行结果如何使用面向对象的方式实现数据结构掌握抽象数据类型的概念(ADT:Abstract Data Type)通过“组合”或者“继承”已有数据结构实现新的结构经常使用“组合”的方式实现新类型学会原创 2020-08-20 12:32:43 · 204 阅读 · 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 · 99 阅读 · 0 评论 -
数据结构与算法:单链表插入删除操作的时间复杂度
https://blog.csdn.net/qq_44024359/article/details/102995080转载 2020-08-18 14:03:17 · 2257 阅读 · 0 评论 -
小明有一些气球想挂在墙上装饰,他希望相同颜色的气球不要挂在一起,写一个算法帮他得出一种可行的挂气球方式,自行定义函数,输入和返回,如果无法做到相同颜色的气球不要挂在一起,请定义合适的一场方式返回
题目:小明有一些气球想挂在墙上装饰,他希望相同颜色的气球不要挂在一起,写一个算法帮他得出一种可行的挂气球方式,自行定义函数,输入和返回,如果无法做到相同颜色的气球不要挂在一起,请定义合适的一场方式返回思路:说实话,一开始看到这个题目想到的思路是定义一个列表,然后判断每次小明要挂的气球颜色是否和之前挂的颜色相同,从而定义返回值。但网上找到的答案确是,小明给你一袋气球,其中的颜色和对应的颜色数量都是知道的。然后现在写个算法帮他把气球挂在墙上且满足相同颜色的气球不挂在一起说明想法还是有些局限外加审题不原创 2020-07-13 20:08:43 · 467 阅读 · 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 · 735 阅读 · 0 评论 -
数据结构与算法:常用数据结构增删查时间复杂度
各个数据结构对应的时间复杂度:https://blog.csdn.net/MOMONGA/article/details/51578602转载 2020-08-16 12:30:44 · 206 阅读 · 0 评论