徐子童13 天前
java·数据结构·面试题·优先级队列··topk问题
数据结构---优先级队列(堆)通过前面的学习,知道了队列是一种先进先出的一种数据结构,但是在一些情况下,在出队列的时候,需要让优先级高的元素先出队列,此时一个普通队列就满足不了这个操作了
深思慎考13 天前
数据结构·链表·递归··队列·合并链表
从合并两个链表到 K 个链表:分治思想的递进与堆优化在链表操作中,“合并有序链表” 是一个经典问题。从最初的 “合并两个升序链表”,到进阶的 “合并 K 个升序链表”,解法思路的演变不仅体现了算法效率的优化,更蕴含了 “分治思想” 从特殊到一般的应用逻辑。本文将一步步拆解问题,从基础解法到高效优化,带你理解如何用分治思维解决复杂问题。 题目链接
再睡一夏就好15 天前
java·数据结构·c++·笔记·学习·
【C++闯关笔记】STL:deque与priority_queue的学习和使用上一篇文章:【C++闯关笔记】STL:stack与queue的学习和使用-CSDN博客下一篇文章:【C++闯关笔记】模板的特化-CSDN博客
派大星爱吃猫15 天前
c语言·数据结构·
堆的概念、结构与应用详解堆是一种特殊完全二叉树,它不仅有完全二叉树的性质还具备其它特性,一般使用顺序结构的数组来存储数据。堆分为大根堆(也称为最大堆)和小根堆(最小堆)。
自信的小螺丝钉1 个月前
算法·leetcode·优先队列·
Leetcode 347. 前 K 个高频元素 堆 / 优先队列原题链接:Leetcode 347. 前 K 个高频元素进阶:你所设计算法的时间复杂度 必须 优于 O(n log n) ,其中 n 是数组大小。
自信的小螺丝钉1 个月前
leetcode·
Leetcode 295. 数据流的中位数 堆原题链接: Leetcode 295. 数据流的中位数中位数查找思想:用两个堆维护数据(大顶堆存左半部分数据,小顶堆存右半部分数据),堆顶分别为左半最大值和右半最小值,可 O (1) 获取中位数。
_OP_CHEN2 个月前
c语言·数据结构·二叉树·学习笔记·堆排序··top-k问题
数据结构(C语言篇):(十三)堆的应用前言一、堆排序1.1 版本一:基于已有数组建堆、取栈顶元素完成排序1.1.1 实现逻辑1.1.2 底层原理
_OP_CHEN2 个月前
c语言·数据结构·算法·二叉树·学习笔记··顺序结构二叉树
数据结构(C语言篇):(十二)实现顺序结构二叉树——堆前言一、堆的概念与结构二、堆的实现2.1 实现堆的结构2.2 头文件的准备2.3 函数的实现2.3.1 HPInit( )函数(初始化)
_OP_CHEN2 个月前
c语言·开发语言·数据结构·二叉树·学习笔记··
数据结构(C语言篇):(十一)二叉树概念介绍引言一、树1.1 树的概念与结构1.2 树的相关术语1.3 树的表示1.4 树形结构的实际运用场景二、二叉树
啊?啊?2 个月前
c++·
14 C++ STL 容器实战:stack/list 模拟实现指南 + priority_queue 用法及避坑技巧从栈的接口中可以看出,栈实际是一种特殊的vector,因此使用vector完全可以模拟实现stack。
农场主John2 个月前
windows·python·算法·leetcode·
(栈)Leetcode155最小栈+739每日温度739. 每日温度 - 力扣(LeetCode)while要把stack的判断放在前面,否则stack[-1]可能报错
夏天ccys3 个月前
算法·leetcode···队列
LeetCode Day5 -- 栈、队列、堆目录1.栈1.1 适用场景:需要回退/最近匹配1.2 普通栈 vs 单调栈2.队列2.1 适用场景:需要先进先出/BFS
Alfred king3 个月前
面试·职场和发展·贪心·数组··排序
面试150 IPO首先,将每个项目的启动资本需求和对应的利润配对,组成一个二元组列表,并根据所需资本从小到大进行排序。这样可以确保在遍历项目列表时,能按所需资本的升序处理。接着,使用一个最大堆(通过在堆中存入利润的负值来实现)来维护当前资本下所有可选项目的利润。在每一轮(最多进行 k 轮)中,程序会将当前可承受的所有项目(即资本需求不超过当前拥有资本的项目)加入最大堆,然后从中选择利润最高的项目(堆顶元素),执行该项目并将其利润加到当前资本上。如果在某一轮没有任何可执行的项目,算法会提前退出。最终,返回选择最多 k 个项目
CS创新实验室5 个月前
python···cpython·局部变量
CPython 局部变量存储机制:从 “栈上存储“ 看语言实现差异在 Python 开发中,常听到 局部变量存储在栈上 的说法,但这句话背后的技术细节却与 C/C++ 等语言存在本质区别。理解 CPython 的变量存储机制,不仅能解开这个认知谜团,还能帮助我们写出更高效率的代码。
June`5 个月前
数据结构·c++·二叉树·红黑树·二叉搜索树··avl树
深度刨析树结构(从入门到入土讲解AVL树及红黑树的奥秘)目录树的表示二叉树的概念及结构(重点学习)概念 :特点:树与非树特殊的二叉树二叉树的性质(重点)二叉树的存储结构
TAMOXL5 个月前
pwn·
ctf.show pwn入门 堆利用-前置基础 pwn142pwn142(off-by-one和堆块重叠)pwn142就一个堆题正常的菜单,有增删改查功能,依次查看
TAMOXL5 个月前
pwn·
NSSCTF [NISACTF 2022]ezheap2058.[NISACTF 2022]ezheap(堆溢出)[NISACTF 2022]ezheap这里先创建两个堆块s和command 然后在s有一个输入点,gets函数,存在堆溢出 并在下面有system函数,内容为command块的内容
whoarethenext6 个月前
c语言·数据结构·c++·
数据结构堆的c/c++的实现堆(Heap)是一种特殊的树形数据结构,它在计算机科学中扮演着至关重要的角色,尤其在高效实现优先队列(Priority Queues)和堆排序(Heap Sort)等算法方面表现突出。理解堆的原理和实现对于每一位C/C++开发者来说都是一项宝贵的技能。本文旨在以通俗易懂的方式,深入剖析堆的核心概念,提供详细的C/C++实现步骤,并通过实例和流程图展示其运作机制,帮助读者全面掌握堆的知识。
小徐Chao努力6 个月前
数据结构·算法·golang·
【堆】最大堆、最小堆以及GO语言的实现堆是计算机科学中一种特别的完全二叉树结构,在优先队列、图算法和排序算法中有广泛应用。本文将从概念、原理和实现等方面详细介绍堆这一重要的数据结构。
sml259(劳改版)7 个月前
数据结构·算法·
数据结构--堆堆是一棵完全二叉树,树中的每个结点的值都不小于(或不大于)其左右孩子结点的值。其中,如果父亲结点的值始终大于或等于孩子结点的值,那么称这样的堆为大顶堆,这时每个结点的值都是以它为根节点的子树的最大值;如果父节点的值始终小于或等于孩子结点的值,那么称这样的堆为小顶堆,这时每个结点的值都是以它为根节点的子树的最小值。