SegmentTree

线段树


 线段树是算法竞赛中常用的用来维护 区间信息 的数据结构。线段树可以在 $O(\log_{2}{N})$ 的时间复杂度内实现单点修改、区间修改、区间查询等操作。

DisjointSet

一文读懂并查集


 假设你现在置身于一个鸡尾酒会中,任何人都不能通过直接搭讪来获得陌生漂亮妹子的微信号。于是你委托你的朋友帮忙,你的朋友委托他的朋友。。。直到找到一位与漂亮妹子认识的人拿到了微信号。因此,你通过这些中间朋友与妹子取得了联系,成功进入了她的社交圈。当然,你可以通过她认识跟多的漂亮妹子,走上人生巅峰。

字典树

Trie树


 据不完全统计,世界上现存英语单词的数量为17万到100万不等。假设现在要你写一个词典APP,要求能够快速检索、删除、添加单词,。显然你很容易想到两种方案:

  1. 将所有单词按字典序排列,在按二分搜索来查询。
  2. 奖励首字母索引表,在各索引项表内按字典序排序单词,再在当中按二分搜索查询。
    但无疑上述方案的要求略高,需要大量的连续空间来存储数据,而且不方便添加删除操作。

二分图最大匹配问题(匈牙利算法)

二分图

 二分图是这样的一个图:其顶点可以划分为两个集合 $ X $ 和 $ Y $, 任何一条边所关联的两个顶点中,恰好有一个属于集合 $X$ , 另一个属于 $Y$。 同一个集合内的顶点必没有边相连。如果一个图是二分图,那么它一定没有 奇环 (边为奇数的环路), 如果一个图没有 奇环 ,那么它就一定是 二分图。

【图解算法】Tarjan算法求图的强连通分量

强连通分量简介

  有向图强连通分量:在有向图G中,如果两个顶点$V_i, V_j$ 间(vi>vj)有一条从$V_i$到$V_j$的有向路径,同时还有一条从$V_j$到$V_i$的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(strongly connected components)。

快速排序及其改进

快速排序

侯捷C++学习笔记[未整理版]

还没有整理过的笔记,有点乱

LeetCode23 合并 K 个排序链表(Hard)

题目描述:

 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。

LeetCode1178_Hard_猜字谜

题目描述:

外国友人仿照中国字谜设计了一个英文版猜字谜小游戏,请你来猜猜看吧。

图解LeetCode295_Hard_MedianFinder

[LC295] 数据流中的中位数(类设计)

题目描述:

中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×

😏

📷

✍️