
数据结构与算法
文章平均质量分 63
流川是海
这个作者很懒,什么都没留下…
展开
-
leetcode解题常见思路
(梳理框架主要由up主提供)双指针方法与应用场景双指针常用于数组、链表两种线性表(有序)数据结构相关的题,具体又分为相向双指针:两个指针一头一尾往中间移动多应用于数组的连续子序列或两两组合,有规律的缩小范围单向双指针两个指针往同一个方向移动(没想到什么场景后续补充吧)快慢指针:通常慢指针向前走一步,快指针向前走两步多用于链表、因为链表无法直接通过索引访问通常利用快慢指针找到链表的中点或公共节点题目881. 救生艇11. 盛最多水的容器141. 环形链表原创 2021-08-01 22:51:15 · 1099 阅读 · 0 评论 -
数据结构-堆
(该篇基本等价于up主视频的学习笔记记录)基本概念堆是一种满足某种特性的完全二叉树大顶堆特性是父节点大于等于任一子节点,堆顶元素是整个堆最大的值小顶堆特性是父节点小于等于任一子节点,堆顶元素是整个堆最小的值基本操作及其时间复杂度访问(通过索引获取):-(堆没有索引)搜索(通过元素获取):O(N)插入:O(logn)删除:O(logn)基本操作python实现以小顶堆为例#调用import heapqnums = [2, 3, 5, 1, 54, 23, 132]#第一原创 2021-07-25 19:31:11 · 129 阅读 · 1 评论 -
数据结构-树
(该篇基本等价于up主视频的学习笔记记录)基本概念根节点:顶层节点,只会作为父节点、不会作为其他节点的子节点父节点、子节点:节点存在分支,那这个节点与其分裂出的节点为父子关系非叶子节点(存在至少一个子节点的节点)、叶子节点(没有子节点的节点)二叉树:每个节点最多分裂出左右子节点的数搜索二叉树:每个节点上的值大于其左子树上所有节点的节点值,小于其右子树上所有节点的节点值完全二叉树:从上到下,从左到右节点无缺失的二叉树平衡树二叉树:平衡树是二叉搜索树和堆合并构成的数据结构,它是一 棵空树或它的原创 2021-07-25 17:07:05 · 82 阅读 · 0 评论 -
数据结构-哈希表
(该篇基本等价于up主视频:哈希表与up主视频:集合的学习笔记记录)基本概念key-value对,key通过哈希函数映射为哈希值(内存地址),存储对应value同一个key一定会有相同的哈希值,但同一个哈希值不一定对应同一个key,对应多个key时说明发生了哈希冲突,这种情况可以再加链表存储来解决基本操作及其时间复杂度- 访问(通过索引获取):-(哈希表没有顺序)- 搜索(通过元素获取):O(1),冲突时O(K),K为冲突数- 插入:O(1),冲突时O(K),K为冲突数- 删除:O(1),原创 2021-07-25 01:01:53 · 162 阅读 · 0 评论 -
数据结构-队列&栈
(该篇基本等价于up主视频1:队列、up主视频2:栈的学习笔记记录)队列基本概念先入先出基本操作及其时间复杂度- 访问(通过索引获取):O(n)- 搜索(通过元素获取):O(n)- 插入:O(1)- 删除:O(1)(访问是指根据索引查询,搜索是指根据指根据值查询)优点先入先出,添加删除快缺点:存取其他位置元素较慢应用场景:先入先出的场景,如排队基本操作python实现#调用from queue import Queueq=Queue()q.原创 2021-07-24 22:31:04 · 105 阅读 · 0 评论 -
数据结构-链表
(该篇基本等价于up主视频的学习笔记记录)基本概念在不连续内存空间中,存储当前元素与next指针指向下一个元素,即存储下一个元素的内存地址。存在单向链表和双向链表(存在previous指针指向上一个元素)基本操作及其时间复杂度- 访问(通过索引获取):O(n)- 搜索(通过元素获取):O(n)- 插入:O(1)- 删除:O(1)(访问是指根据索引查询,搜索是指根据指根据值查询)优点易插入删除缺点:不易查询应用场景:适用于读少些多、变化频繁的线性表基原创 2021-07-24 17:50:36 · 102 阅读 · 1 评论 -
数据结构-数组
基本概念线性表:零个或多个数据元素的有限序列顺序存储结构:数组链式存储结构:链表原创 2021-07-24 17:32:01 · 108 阅读 · 0 评论 -
刷题经验总结
都说没有最好的数据结构,只有最适合的数据结构。虽然我们现在竟然调用一些现成代码包,这东西看着不一定能马上使用,但蕴含着编程最本质的一些逻辑与思想,使我们能够创作出更优美的代码。不过学习它的过程并不容易,有时候遇到一些难题需要硬啃,真正理解那些巧妙的解法,再通过不断练习让自己学会运用、举一反三。后面会按主题一一记录一些题目与解题思路,主题可能按数据结构、也可能按主要解题方法,题目范围会有交叠。基本概念数据:描述客观事物的符号,计算机可以接收处理的对象数据结构:相互之间存在一种或多种关系的数原创 2021-04-24 12:11:50 · 324 阅读 · 0 评论