哈希表 通俗的解释


哈希表又称散列表,一种以「key-value」形式存储数据的数据结构。所谓以「key-value」形式存储数据,是指任意的键值 key 都唯一对应到内存中的某个位置。只需要输入查找的键值,就可以快速地找到其对应的 value。可以把哈希表理解为一种高级的数组,这种数组的下标可以是很大的整数,浮点数,

最近公共祖先 (LCA)


1. 朴素法:普通递归 这是最直观的方法。从根节点开始递归,对于每个节点,检查是否是p或q,或者p和q是否在它的两侧子树中。如果是,那么这个节点就是LCA。 struct TreeNode { int val; TreeNode *left; TreeNode *right;

STL:优先队列


C++中的优先队列(priority queue)是一种用于维护一组元素构成的集合的容器适配器,其中每个元素都有一个优先级。添加到优先队列中的元素将按照其优先级排序,优先级最高的元素将首先被移除。优先队列通常使用堆(heap)数据结构来实现,以支持高效的元素插入和移除操作。 在C++标准库中,优先队

树状数组的学习


Binary Indexed Tree, 树状数组是一种支持 单点修改 和 区间查询 的,代码量小的数据结构。 用于解决动态前缀和的[[数据结构]],涉及区间问题 事实上,树状数组能解决的问题是[[线段树]]能解决的问题的子集:树状数组能做的,线段树一定能做;线段树能做的,树状数组不一定可以。然而,