![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 90
pyorz
python 爱好者
展开
-
labuladong算法学习进展
学习目标:例如: labuladong的算法秘籍学习 csdn记录学习进展学习内容:搭建 Java 开发环境掌握 Java 基本语法掌握条件语句掌握循环语句学习时间:周一至周五早上 9 点—10点学习产出: 2022年4月24日 11点04分。数组、矩阵的前缀和...原创 2022-04-24 11:08:57 · 675 阅读 · 0 评论 -
算法-20-算法分析
大O表示法时间复杂度空间复杂度原创 2020-10-15 09:46:16 · 63 阅读 · 0 评论 -
算法-19-KMP(字符串匹配算法)
图解Knuth-Morris-Pratt 算法原创 2020-10-15 09:42:22 · 45 阅读 · 0 评论 -
算法-18-twoSum问题、FloodFill算法、区间问题
两数和矩阵填充区间合并原创 2020-10-15 09:37:09 · 62 阅读 · 0 评论 -
算法-17-单调栈、单调队列
单调栈单调栈实际上就是栈,只是利用了一些巧妙的逻辑,使得每次新元素入栈后,栈内的元素都保持有序(单调递增或单调递减)。单调栈用途不太广泛,只处理一种典型的问题,叫做 Next Greater Element。下一个更大的元素下一个更大的元素(循环数组)单调队列就是一个「队列」,只是使用了一点巧妙的方法,使得队列中的元素单调递增(或递减)。这个数据结构可以解决滑动窗口的一系列问题。...原创 2020-10-15 09:29:44 · 59 阅读 · 0 评论 -
算法-16-双指针、滑动窗口
双指针滑动窗口原创 2020-10-15 09:24:38 · 92 阅读 · 0 评论 -
算法-15-分支限界
分支限界原创 2020-10-15 09:20:22 · 76 阅读 · 0 评论 -
算法-14-回溯
回溯原创 2020-10-14 10:02:11 · 38 阅读 · 0 评论 -
算法-13-分治
分治算法原创 2020-10-14 09:56:03 · 37 阅读 · 0 评论 -
算法-12-贪心
贪心原创 2020-10-14 09:51:22 · 103 阅读 · 0 评论 -
算法-11-动态规划简介
动态规划原创 2020-10-14 09:48:57 · 160 阅读 · 0 评论 -
算法-10-二叉树LeetCode题
二叉树最大深度二叉树最小深度路径总和统计二叉树节点个数统计二叉树叶子节点个数统计二叉树第k层节点个数求二叉树第k大节点求二叉树第k小节点二叉树搜索树中的众数判断二叉树是否是完全二叉树判断二叉树是否是平衡二叉树两个二叉树是否完全相同两个二叉树是否互为镜像翻转或者镜像二叉树求两个二叉树的最低公共祖先节点根据二叉树的前序遍历和中序遍历的结果,重建出该二叉树...原创 2020-10-14 09:44:37 · 93 阅读 · 0 评论 -
算法-09-图
图的定义图的搜索原创 2020-10-14 09:30:47 · 51 阅读 · 0 评论 -
算法-08-其他树
红黑树区间树斐波那契堆Van Emde Boas树原创 2020-10-14 09:29:10 · 54 阅读 · 0 评论 -
算法-07-二叉搜索树
二叉搜索树原创 2020-10-14 09:24:01 · 48 阅读 · 0 评论 -
算法-06-二叉树的遍历
二叉树遍历迭代方式需要借助栈,重点考虑入栈、出栈顺序# Definition for a binary tree node.class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right1 前序遍历递归def preorder(root): if not root原创 2020-10-14 09:19:16 · 172 阅读 · 0 评论 -
算法-系统认识数据结构
转载自labuladong1. 数据结构的存储方式数据结构的存储方式只有两种:数组(顺序存储)和链表(链式存储)数组:由于是紧凑连续存储,可以随机访问,通过索引快速找到对应元素,而且相对节约存储空间。但正因为连续存储,内存空间必须一次性分配够,所以说数组如果要扩容,需要重新分配一块更大的空间,再把数据全部复制过去,时间复杂度 O(N);而且你如果想在数组中间进行插入和删除,每次必须搬移后面的所有数据以保持连续,时间复杂度 O(N)。链表:因为元素不连续,而是靠指针指向下一个元素的位置,所以不原创 2020-10-14 09:32:11 · 354 阅读 · 0 评论 -
算法-05-排序
@TOC1 冒泡算法描述冒泡排序(Bubble sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。比较相邻的元素。如果第一个比第二个大,就交换它们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;针对所有的元素重复以上的步骤,除了最后一个;重复步骤1~3,直到排序完成。图解代码实现2 快排快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的转载 2020-10-13 09:53:12 · 93 阅读 · 0 评论 -
算法-04-查找
顺序二分插值分块哈希树表BFPRT线性查找原创 2020-10-13 09:37:50 · 42 阅读 · 0 评论 -
算法-03-栈
基本概念方法原创 2020-10-13 09:27:58 · 447 阅读 · 0 评论 -
算法-02-队列
基本概念数组实现链表实现栈实现双端队列python内置Queueimport queue # 不能用于多进程之间的通讯,可以用于多线程间的通讯from multiprocessing import Queue # 可以用于进程之间的数据共享q = Queue(3) # 创建一个队列对象,队列长度为3q.put(1)q.put(2)q.put(3)# q.put(4) # 当队列已满,继续放值,,会阻塞程序try: q.put_nowait(4) # 等同于 q原创 2020-10-13 09:27:31 · 52 阅读 · 0 评论 -
算法-01-链表
基本概念单链表实现class linkNode(): """ 链表节点类 """ def __init__(self,dat): self.dat=dat self.next=Noneclass sigLink(): """ self.length 用于记录链表的长度 self.head 链表的头部 self.tail 记录链表的尾部 """ def __init__(原创 2020-10-13 09:26:53 · 73 阅读 · 0 评论