写 add 把两位都置上

补全 bloom_add:把 k 的两个哈希位都置成 1。加完 17、24、15 之后,输出一共有几位被置上了。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

写 check 两位都是 1

补全 bloom_check:两个哈希位都是 1 才返回 可能在,否则返回 肯定不在。查 15(它确实加过),输出结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

亲眼看见一次误判

同一个 bloom_check。这次查 13——它从来没被加过。但 13 的两个哈希位(5 和 7)正好被 15 置上了,于是过滤器会说它「可能在」。这就是误判。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

要反复查区间和还会改

第 1 步:四种需求,各选一种结构 第 2 步:第 1 条需求的答案 第 3 步:第 2 条需求的答案 第 4 步:第 3 条需求的答案 第 5 步:第 4 条需求的答案 第 6 步:先看需求,再挑结构 区间和会改 海量可误判 磁盘少读盘

开始练习 →

要挡住海量重复请求

爬虫要判断「这个网址抓过没有」,几十亿条,允许极小误判,选【0】。

开始练习 →

按需求挑一个

运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #include <string> #include <

开始练习 →

磁盘上的索引选什么

同一张对照表。 运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #include <string> #inc

开始练习 →

写一个选型函数

补全 choose:按需求返回该用哪种结构。四条对应关系:区间和还会改 → 树状数组;海量去重可误判 → 布隆过滤器;磁盘上少读盘 → B+树;有序且增删频繁 → 平衡树;表里没有的返回 还得再想想。这次问的是「区间和还会改」。 (本题用

开始练习 →

需求变了选型也变

同一个 choose,这次问的是「有序且增删频繁」。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

没见过的需求别崩

同一个 choose:需求不在表里就返回 还得再想想,不能出错。这次问一个表里没有的需求,输出结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →