首页
学习
活动
专区
圈层
工具
发布

#链表

【零基础学java】(数据结构1)

北极的代码

计算机存储,组织数据的方式,是指数据相互之间是以什么方式排列在一起的。不同 的业务场景要选择不同的数据结构。 1.每个数据结构长什么样子,

5810

【零基础学java】(数据结构1)

北极的代码

计算机存储,组织数据的方式,是指数据相互之间是以什么方式排列在一起的。不同 的业务场景要选择不同的数据结构。 1.每个数据结构长什么样子,

5810

【零基础学java】(HashMap源码解析--链表或红黑树元素添加,元素覆盖)

北极的代码

前言:元素的覆盖并不是简单把要添加的键值对进行整体替换,而是保持哈希值,键不变,对值进行替换,覆盖,并返回被覆盖的值,本篇文章会从源码的角度进行深度解析逻辑背后...

5310

【零基础学java】(HashMap源码解析--链表或红黑树元素添加,元素覆盖)

北极的代码

前言:元素的覆盖并不是简单把要添加的键值对进行整体替换,而是保持哈希值,键不变,对值进行替换,覆盖,并返回被覆盖的值,本篇文章会从源码的角度进行深度解析逻辑背后...

5310

LeetCode【刷题日记】一篇搞懂链表的删除

北极的代码

前言:前面我们学习了关于数组的算法题,这一章节,我们会学习关于链表算法题,链表也是一种数据结构,我会在这里介绍一些链表的基础知识,以及如何操作链表。

6300

【LeetCode刷题日记】:设计链表全解析

北极的代码

将一个值为 val 的节点插入到链表中下标为 index 的节点之前。如果 index 等于链表的长度,那么该节点会被追加到链表的末尾。如果 index 比长度...

6310

【LeetCode刷题日记】:反转链表(面试基础考察)

北极的代码

我们只需要改变链表的next指针指向: 首先定义一个cur指针,指向头结点,再定义一个pre指针,初始化为null。然后就要开始反转了,首先要把 cur-...

7310

【LeetCode刷题日记:24】两两交换链表

北极的代码

前言:今天继续学习链表的相关题目,主要还是考察链表的基本操作,是面试的基础题常考,需要掌握。

8810

【LeetCode 刷题日】19.删除链表的倒数第n个节点

北极的代码

双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。思...

6710

【LeetCode刷题日记】160:相交链表

北极的代码

如果是一长一短的链表,我们先让长链表的指针移动两个链表的长度差的值,让两个链表从同一起点开始,因为我们要找的相交节点,要求可以说是很苛刻,相交节点之后的长度,v...

7400

【LeetCode刷题日记】142.环形链表Ⅱ

北极的代码

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中...

7000

【LeetCode刷题日记】哈希表:从0基础到实战全解析

北极的代码

我们已经完成了对链表章节算法的学习,关于这些方法思路的总结,我准备找一个专门的时间总结出来,以思维导图为发散,将知识点串联起来,接下来我们继续学习哈希表及其相关...

4910

向量相似性搜索详解:Flat Index、IVF 与 HNSW

deephub

它的原理并不复杂:在普通有序链表之上叠加多层快捷指针。搜索时从最高层出发以大步幅向右跳跃;当下一个节点的值超过目标时下降一层继续搜索,每下降一层搜索范围就缩小一...

20310

今天不聊技术,发两道题.为什么?年底了,做完可能有惊喜哦

烟雨平生

设计并实现一个令牌桶。初始化时,需要初始化令牌桶的 最大容量和每秒生成令牌的数量。

6410

哈希表设计精髓:从哈希函数、冲突解决(开放寻址 / 链地址)到负载因子的数学逻辑

果酱带你啃java

原理:每个桶对应一个链表(或红黑树),冲突元素直接添加到链表尾部;当链表长度超过阈值(如8)时,转为红黑树以优化查找性能。 优势:无聚集现象,删除操作简单(直接...

11810

数组 vs 链表:物理存储的底层逻辑,如何锁死 Java 集合 90% 的性能上限?

果酱带你啃java

HashMap的底层是哈希桶数组+链表(解决哈希冲突)+红黑树(优化长链表查询),它把数组和链表的优势结合到了极致:

9810

跳表:从理论到 Redis 实战,解锁「空间换时间」的终极数据结构

果酱带你啃java

链表是一种线性数据结构,优势在于插入删除的时间复杂度为 O(1),但查找的时间复杂度为 O(n)。即使是有序链表,也需要逐个遍历节点,效率低下。

11510

栈:线性结构中的 “后进先出” 王者,从底层逻辑到实战应用全解析

果酱带你啃java

链表栈用单向链表存储元素,栈顶指向链表的头节点(权威参考:《数据结构与算法(Java版)》邓俊辉)。由于链表是动态结构,无需扩容,但需要额外存储节点指针。

13710

链表:从底层逻辑到实战应用,彻底搞懂线性结构的灵魂!

果酱带你啃java

循环链表是单链表或双向链表的变种 —— 尾节点的next指向头节点(单循环链表),或头节点的prev指向尾节点(双向循环链表)。

17610

MySQL查询海量数据会出现OOM的场景么?

bisal

InnoDB按5:3比例把链表分成New区和Old区。图中LRU_old指向的就是old区域的第一个位置,是整个链表的5/8处。即靠近链表头部的5/8是New区...

9910
领券