python数据结构与算法
长沙的沙
这个作者很懒,什么都没留下…
展开
-
DAY 26冲击蓝桥杯——Python数据结构与算法08 队列(Queue)
5.1 特点先进先出基于链表创建的单端队列:一个口进一个口出双端队列:两个口都可以进,两个口都可以出5.2 时间复杂度访问:O(N)搜索:O(N)插入:O(1)删除:O(1)5.3 队列的常见操作5.3.1 创建队列# 创建队列# 该方法为双端队列queue = deque()5.3.2 添加元素# 向末尾添加queue.append(1)# 向队列头添加queue.appendleft(1)5.3.3 获取即将出队的元素# 获取即将出队的元素 O(1)t原创 2022-02-28 22:26:47 · 547 阅读 · 0 评论 -
DAY 25冲击蓝桥杯——Python数据结构与算法07 树(Tree)
7.1 概念7.1.1 节点节点:除了根节点和叶子节点外的节点根节点:第一个开始的节点叶子节点:最底层的节点,没有孩子7.1.2 高度、深度和层深度:从上往下计算高度:从下往上计算层:从上往下计算。1开始7.1.3 二叉树普通二叉树:每个节点最多两个孩子。满二叉树:除了叶子节点外,每个节点都有左右两个孩子。还有,满二叉树的所有叶子节点在同一层上。完全二叉树:从树的根节点,从上到下,从左往右依次填满节点形成的二叉树。7.1.4 遍历前序遍历:先访问根节点,然后访问左节点,最后右原创 2022-02-24 00:19:21 · 681 阅读 · 0 评论 -
DAY 24冲击蓝桥杯——Python数据结构与算法06 栈(Stack)
6.1 特点回顾下队列:先进先出。栈则是先进后出,类比于浏览器的后退功能。6.2 时间复杂度访问: O(N) 栈顶元素搜索:O(N)插入: O(1)删除: O(1) 栈顶元素6.3 栈的常用操作6.3.1 创建栈# 创建stackstack = []6.3.2 添加元素# 向末尾添加stack.append(1)6.3.3 获取即将出stack的元素# 获取即将stack的元素 O(1)temp1 = stack[-1]6.3.4 删除即将stack的元素# 删原创 2022-02-19 23:30:29 · 631 阅读 · 0 评论 -
DAY 23冲击蓝桥杯——Python数据结构与算法05 链表(Linked List)
4.1 定义回顾数组:连续的内存空间。链表:非连续空间,包含当前数据和下一节点的地址分为单端链表和双端链表(不太用)4.2 功能4.2.1 访问 AccessO(n) 需要从头到尾遍历4.2.2 搜索 SearchO(n) 需要从头到尾遍历4.2.3 插入 InsertO(1) 断开 再连接4.2.4 删除 DeleteO(1) 断开 再连接4.3 特点写很快、读很慢读少写多链表结构 力扣一般给你了4.4 python链表常用操作4.4.1 创建链表linked原创 2022-02-17 23:10:17 · 526 阅读 · 0 评论 -
DAY 22冲击蓝桥杯——Python数据结构与算法04 数组leetcode练习
文章目录leetcode 485leetcode 283leetcode 27leetcode 485给定一个二进制数组 nums , 计算其中最大连续 1 的个数。class Solution: def findMaxConsecutiveOnes(self, nums: List[int]) -> int: count=0 result=0 for i in nums: if i==1:原创 2022-02-16 23:03:40 · 197 阅读 · 0 评论 -
DAY 21冲击蓝桥杯——Python数据结构与算法03 数组Array
3.1 定义:在连续的内存空间中,储存一组相同类型的元素。二维数组实际是一个线性数组存放着其他数组的首地址。3.2 区分:3.2.1 元素VS索引[1,2,3]0,1,23.2.2 数组访问VS数组搜索数组访问a[1]=2数组搜索 找到这个元素3.2.3 常见四种操作数组常见四种操作时间复杂度访问 O(1) 通过计算可以得到地址位置,从而进行访问搜索 O(N) 需要对数组进行遍历插入 O(N) 需要将后面的元素往后移动如果内存不够,需要开辟一块新空间,将数组移进去删除 O(原创 2022-02-15 23:24:00 · 753 阅读 · 0 评论 -
DAY 21冲击蓝桥杯——Python数据结构与算法02 空间复杂度
指的是算法存储空间与输入值之间的关系。常见空间复杂度:O(1)、O(n)、O(n^2)O(1)<O(n)<O(n^2)O(1)def test(num): total=0 for i in range(num): total += i return totalO(n)def test(nums): array=[] for num in range(nums): array.append(num) return array时间和空间只能二选一面试时:和原创 2022-02-15 23:22:59 · 418 阅读 · 0 评论 -
DAY 21冲击蓝桥杯——Python数据结构与算法01 时间复杂度
是指算法的执行效率算法的执行时间与算法的输入值之间的关系for/while循环 O(n)无循环 则为常量O(1)常见时间复杂度案例分析:O(1):def O1(num): i=num j=num*2 return i+jO(log n):def O1(num): i=num j=num*2 return i+jO(n):def OlogN(num): i=1 while(i<num): i=i*2 return iO(m+n):def OMN(num原创 2022-02-15 23:22:12 · 536 阅读 · 0 评论