只要前 K 个不要全序

一百万条数据只要最大的 10 个,比「全排一遍」更省的做法是【0】。

开始练习 →

选型结论该怎么写下来(C++)

把选型结论写进文档时,最要紧的是【0】。

开始练习 →

用数组判重要比多少次

往里加 100 条互不相同的数据,用数组判重。运行下面这段程序,它数的是「比较了多少次」: #include <algorithm> #include <iostream> #include <map>

开始练习 →

用集合判重要比多少次

同样 100 条,改用集合。运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #include <string>

开始练习 →

写一个选型函数

补全 choose:按需求返回该用哪种结构。三条对应关系:只要判重 → 集合;判重还要保序 → 集合加数组;只要前K大 → 堆;表里没有的需求返回「还得再想想」。这次问的是「判重还要保序」。 (本题用 g++ -std=c++17 -O0

开始练习 →

两种做法差了多少倍

补全 ratio_of:返回数组判重的比较次数是集合的多少倍(整数除法)。算 100 条时的倍数。(函数不叫 ratio,是因为标准库里已经有一个 std::ratio。) (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

动手写之前先定什么(C++)

选型定了之后、动手实现之前,先要定的是【0】。

开始练习 →

边写边验的办法

第 1 步:按顺序一个个处理 第 2 步:3 没见过:记下 第 3 步:7 没见过:记下 第 4 步:3 见过了:跳过 第 5 步:5 没见过:记下 第 6 步:7 见过了:跳过 第 7 步:3 见过了:跳过 3 7 3 5 7 3 3 7

开始练习 →

实现和选型的关系

选型说「用集合判重」,实现时却写成了在 vector 里 find,结果是【0】。

开始练习 →

去重之后还剩几个

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

开始练习 →