Queue-Priority Quque

一、OverView​ 还是来填一下优先队列的坑,在前面已经介绍过 队列 了,而且在其中介绍了一种拥有特殊特性的队列:优先队列。在其中我们提到了,不管你是进入这个优先队列的顺序如何,出队的顺序是可以定制的 ( 也可以说是按照一定顺序的 ),让我们先看一个 Java 中的例子 123456789101112131415161718public class LC0000Priori...

Queue

一、OverView在前面已经看过受限的线性序列:栈 在本章中可以看一下另外一个受限的线性序列:队列 在本章中可以看到: 🐢 : 首先对比一下栈,并介绍一下队列的特性 🐷 : 在这一小节中分别用数组和链表实现一下队列,主要是用数组实现 🐭 : 在这一小节主要介绍一下几个特殊的队列,其中主要是优先队列和双端队列 🐂 : 由于在 Java 中,队列是一个接口,简单看一下实现类 二、特性...

Stack--Monotonic Stack

一、OverView在前面已经提及过 栈 这个数据结构,在 LeetCode 中有考察过这样一种栈操作:单调栈。 顾名思义,这是在栈的基础上达到单调递增或单调递减的效果。 大概的过程如下: 如果想达到递增的效果: 进栈:首先要比较与栈顶的大小,如果比栈顶元素大,那么直接放在栈顶即可;否则要将栈顶元素出栈,然后将这个元素与栈顶元素进行比较 出栈:直接出栈即可 如果想达到递减的效果: ...

Stack

一、OverView 快速预览: 🐷:第一小节看一下栈的特性,为什么会有这种受限的数据结构的出现? 🐢:第二小节看一下要实现一个栈,最基本需要什么操作? 🐭:第三小节看一下栈的的应用,是不是这些应用驱动着栈的诞生 🐦:最后一个小节还是老套路,简单的看一下 Java 中关于栈的 API 二、特性​ 在前面已经介绍了数组和链表两种最基本的数据结构,可以说他俩就是整个数据...

LinkedList

一、OverView 快速预览: 首先要和上一节的数组进行横向对比,来看一下链表独有的特性 第二小节会介绍一下常见的几种链表,以及为什么要衍生出这些链表 第三小节主要关注于链表的基操,(勿6) 以及在链表中的一些注意事项,如何保持链表不断链,为什么要引入哨兵 最后一个小节主要结合 Java 中的链表 LinkedList 来加深对链表的理解 二、特性在上一节中已经介绍过数组了,可以将数组...

Array

一、OverView思维导图: 二、特性数组应该是所有程序员中最熟悉的数据结构了,如果你简单的回忆一下数组的具体含义,你可以得到已经几个重要的结论: 🐷 线性结构 🐢 连续内存 🐭 存储相同类型 2.1 线性结构顾名思义,线性结构就是这个结构像线性一样,而非是其它结构,这样说的确有点抽象,可以从下面几个例子来看一下: 注: 这里的 Array 是使用 Jav...

Algorithm

​ 最近实习后发现自己的算法能力急剧下降,CRUD 只是下限,算法才是上限,决定重新开一个系列,将数据结构与算法重新学一遍。这次主要参考的课程是《数据结构与算法之美》和《算法面试通关40讲》。这里就不像《算法导论》那样比较理论化,应该会更偏向于《算法》这本书的类型。 可以看到下面这些有趣的点: 🐷 尽量利用图 + 文字,清晰的表达意思 🐢 一定要结合 Leetco...