lower_bound 返回什么

第 1 步:set 里的数天生从小到大 第 2 步:20 比 55 小:跳过 第 3 步:30 比 55 小:跳过 第 4 步:50 比 55 小:跳过 第 5 步:lower_bound(55):停在 60 20 30 50 60 70

开始练习 →

标准库为何不用普通 BST

标准库的 set / map 不用普通 BST,而用平衡树,是因为【0】。

开始练习 →

set 里存了几个谁最小

把 17、24、15、13、23 依次插进一棵空的 BST。运行下面这段程序: #include <iostream> #include <iterator> #include <map> #includ

开始练习 →

lower_bound(20) 停在哪

把 17、24、15、13、23 依次插进一棵空的 BST。运行下面这段程序: #include <iostream> #include <iterator> #include <map> #includ

开始练习 →

用 lower_bound 数区间

补全:用 lower_bound 和 upper_bound 数出 set 里落在 [15, 23] 之间(含两端)的元素个数。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

找比 x 小的最大那个

补全:在 set 里找「严格小于 20 的最大元素」(前驱)。先 lower_bound(20),再往前退一步。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

用 map 统计出现次数

补全:用 map<int, int> 数出 {3, 1, 3, 2, 3, 1} 里每个数出现几次,按从小到大输出「数:次数」,用逗号连起来。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

用 set 算出排名

补全:用 distance 算出 17 在 set 里从小到大排第几(最小的算第 1)。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

从 set 里删掉最小的

补全:删掉 set 里最小的元素,然后输出「剩几个/现在最小的」,格式如 4/甲。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

一个够用的 BST 要有什么

第 1 步:从一棵空树开始 第 2 步:插入 50 第 3 步:插入 30 第 4 步:插入 70 第 5 步:插入 20 第 6 步:插入 60 第 7 步:查找:沿一条路往下 第 8 步:删除:叶子直接摘掉 第 9 步:中序验收:依旧升

开始练习 →