『 代码随想录 』 双指针 - 链表篇
本文介绍了链表操作中的四种常见题型及解法: 合并两个有序链表:使用双指针遍历两个链表,按顺序合并到新链表中。 分隔链表:按特定值将链表分为两个子链表,再合并保留相对顺序。 合并K个有序链表:通过优先级队列(小根堆)高效合并多个链表。 删除倒数第N个节点:采用快慢指针定位目标节点进行删除。 每种解法均配有动画演示和代码实现,核心思路是通过哨兵节点简化操作,利用双指针或堆结构优化处理逻辑。
本文介绍了链表操作中的四种常见题型及解法: 合并两个有序链表:使用双指针遍历两个链表,按顺序合并到新链表中。 分隔链表:按特定值将链表分为两个子链表,再合并保留相对顺序。 合并K个有序链表:通过优先级队列(小根堆)高效合并多个链表。 删除倒数第N个节点:采用快慢指针定位目标节点进行删除。 每种解法均配有动画演示和代码实现,核心思路是通过哨兵节点简化操作,利用双指针或堆结构优化处理逻辑。
Github Stats 所有开源项目 仓库 项目简介 Stars fork 编程语言 cherryings.github.io 0 0 HTML JsonRpc 0 0 Makefile Start-1- 0 0
ProtoBuf是Google开发的一种高效、跨平台的序列化数据格式,相比XML/JSON具有更小的体积和更快的编解码速度。它通过二进制流传输数据,安全性更高,并强制使用.proto文件定义数据结构以达成通信协议。ProtoBuf支持标量数据类型(如int32、string等),采用变长编码优化存储空间,并允许向后兼容更新。通过protoc工具可将.proto文件编译为多种语言的代码,生成包含字段处理、序列化/反序列化方法的类结构。其编号机制(1-15优先)和严格的语法规范确保了高效稳定的数据传输。
KMP算法本质上是用来找一个字符串中, 其子串所出现的频率;
**假设一个字符串为 **ABACBAACBACA 需要找子串 BACB所出现的次数;
其中此处我们能看到的最终结果:
**子串出现的次数为: **
1
这就是KMP算法所解决的问题;
快速选择的思路, 本质上是一种减分治的思路;
排序方式本质上是通过对一组无序的数据进行有序化, 在将数组有序化后, 其中len-k的位置即为TopK;
而快速排序本质上就是通过分治的思路, 将问题化为子问题, 最终达到有序状态;
以简单的双指针单次快排思路为例;