摘要:
leetcode 链接:https://leetcode cn.com/problems/longest palindromic substring 这道题我采用的是中心扩散的方法,分别判断 , 两种模式,因此进行了两次遍历,时间上不太理想只超越了30%,但是空间上超越了99%,也算是有利有弊。 官 阅读全文
摘要:
好,我们直接开始今天的 TCP/IP 协议,这两个协议与我们平时网络生活中的绝大部分内容都息息相关,包括现在打开的这个博客也是通过 TCP/IP 协议来发送到你的设备上的。 1. TCP/IP 协议的四层结构 在计算机网络中共包括四层结构,从上到下分别是应用层、传输层、网络层和链路层。 应用层顾名思 阅读全文
摘要:
今天我们要介绍的是一种特殊的二叉树——二叉搜索树,同时我们也会讲到一种排序算法——二叉树排序算法。这两者之间有什么联系呢,我们一起来看一下吧。 开始之前呢,我们先来介绍一下如何创建一颗二叉搜索树。 假设我们有这样一些数据: 我们就用这些数据来创建二叉排序树。 首先,我们将第一个数据 作为二叉排序树的 阅读全文
摘要:
今天在刷题的时候用到了正则,用的过程中就感觉有点不太熟练了,很久没有用正则都有点忘了。所以现在呢,我们就一起来review一下python中正则模块re的用法吧。 今天是review,所以一些基础的概念就不做介绍了,先来看正则中的修饰符以及它的功能: 修饰符 re.I 使匹配对大小写不敏感 re.L 阅读全文
摘要:
好,前面我们介绍了一般二叉树、完全二叉树、满二叉树,这篇文章呢,我们要介绍的是哈夫曼树。 哈夫曼树也叫最优二叉树,与哈夫曼树相关的概念还有哈夫曼编码,这两者其实是相同的。哈夫曼编码是哈夫曼在1952年提出的。现在哈夫曼编码多应用在文本压缩方面。接下来,我们就来介绍哈夫曼树到底是个什么东西?哈夫曼编码 阅读全文
摘要:
"上篇文章" 我们介绍了树的概念,今天我们来介绍一种特殊的树——二叉树,二叉树的应用很广,有很多特性。今天我们一一来为大家介绍。 二叉树 顾名思义,二叉树就是只有两个节点的树,两个节点分别为左节点和右节点,特别强调,即使只有一个子节点也要区分它是左节点还是右节点。 常见的二叉树有一般二叉树、完全二叉 阅读全文
摘要:
前面我们介绍了队列、堆栈、链表,你亲自动手实践了吗?今天我们来到了树的部分,树在数据结构中是非常重要的一部分,树的应用有很多很多,树的种类也有很多很多,今天我们就先来创建一个普通的树。其他各种各样的树将来我将会一一为大家介绍,记得关注我的文章哦~ 首先,树的形状就是类似这个样子的: 它最顶上面的点叫 阅读全文
摘要:
今天我们来到了循环队列这一节, "之前的文章" 中,我介绍过了用python自带的列表来实现队列,这是最简单的实现方法。 但是,我们都知道,在列表中删除第一个元素和删除最后一个元素花费的时间代价是不一样的,删除列表的第一个元素,那么在它之后的所有元素都要进行移动。所以当列表特别长的时候,这个代价就比 阅读全文
摘要:
OK,上篇博客我们介绍了双向链表以及代码实现,这篇文章我们来学习堆栈和队列。 队、栈和链表一样,在数据结构中非常基础一种数据结构,同样他们也有各种各样、五花八门的变形和实现方式。但不管他们形式上怎么变,队和栈都有其不变的最基本的特征,我们今天就从最基本,最简单的实现来看看队列和堆栈。 不管什么形式的 阅读全文
摘要:
数据结构在编程世界中一直是非常重要的一环,不管是开发还是算法,哪怕是单纯为了面试,数据结构都是必修课,今天我们介绍链表中的一种——双向链表的代码实现。 好了,话不多说直接上代码。 双向链表 首先,我们定义一个节点类:Node 好,我们定义了节点类,并实现了获取、修改节点数据、获取上一个/下一个节点的 阅读全文