数据结构与算法

轻松掌握数据结构——优先级队列

优先级队列(堆) 文章目录 优先级队列(堆) 前言 一、堆(Heap)是什么? 二、堆的存储方式 三、堆的创建 四、堆的插入和删除 1.堆的插入 2.堆的删除 五、接口介绍 六、如何改为大堆 六、一些题 总结 前言大家好啊!相信大家在前面的学习中都了解了队列的概念

干货版《算法导论》08:哈希——重构集合数据结构的速度魔法

干货版《算法导论》08:哈希——重构集合数据结构的速度魔法 Bilibili 同步视频 🔎 一、比较模型:藏在查找背后的「下界枷锁」 🎯 二、直接寻址数组:O(1) 乌托邦,却困于空间爆炸 核心原理 极致性能 致命缺陷:空间爆炸💥 🔑 三、哈希登

【C++】 链式哈希表(Separate Chaining)

  链式哈希表(Chaining Hash Table / 拉链法哈希表)         链式哈希表是最经典、工业界应用最广的哈希表实现方案之一,核心作用是解决哈希冲突问题:当不同的Key经过哈希函数计算后,映射到同一个桶位置时,用「链表挂载」的方式把所有冲突的键值对挂在同一个桶下,避免数据覆盖

【题目讲解】 算法系列之定长类滑动窗口解析(上)

目录前言Part1. 标准滑动窗口Part1.1. 定长子串中元音的最大数目Part1.2. 子数组的最大平均数Part2. 滑动窗口+哈希表Part2.1. 长度为K子数组中的最大和Part3. 转化类滑动窗口Part3.1. 得到K个黑块的最少涂色次数Part3.2. 重新安排会议得到最多空闲时间Part4. 总结Part5. 结语前言   滑动窗口作为经典的算法之一&#

哈希表题解:O(1) 查询背后也有边界

哈希表题解:O(1) 查询背后也有边界一、哈希表不是无脑加速器哈希表在算法题里太常见了:两数之和、最长连续序列、字母异位词、前缀和计数。它的优势是平均 O(1) 查询,但这不代表可以无脑使用。哈希表会消耗空间,也会带来 key 设计、重复元素、计数和边界问题。很多哈希题写错,不是不会用 dict,而是没想清楚存什么

C++图论基础多源最短路-Floyd 算法流食般投喂

多源最短路:即图中每对顶点间的最短路径。 📌这里多源最短路算法我们只介绍 Floyd(弗洛伊德) 算法。 📌它适用于任何图,不管是有向无向,边权正负,但是最短路必须存在(也就是不存在负环),但其实 Floyd 算法是可以判断负环的。