一万条也不能退化

同一个 distinct,这次喂 10000 条(其中只有 1000 个不同的值)。 ⚠️ 用集合写的话瞬间就出来;写成 x in 列表 的话,这道题会跑很久。

开始练习 →

三条边界一起验

把三条边界一次验完:空输入得 0、五个相同的得 1、一万条(1000 个不同值)得 1000。 三条全过输出 边界通过,否则输出 有失败。

开始练习 →

一份完整的方案要包含什么

交付一份数据结构方案,至少要包含【0】。

开始练习 →

交付时最该写清楚的一件事

把方案交给别人时,最该写清楚的是【0】。

开始练习 →

这批词去重之后剩几个

运行下面这段程序: print(len(set(["苹果", "香蕉", "苹果", "梨", "香蕉", "苹果"])

开始练习 →

第一步:写下选型

最终作品第一步:补全 choose,按需求给出该用哪种做法(表外的返回 还得再想想)。 需求是「判重还要保序」。

开始练习 →

第二步:按选型实现

照着上一步的选型写出来:集合判重、列表保序。 把去重后的三个词拼起来输出(用 / 隔开)。

开始练习 →

第三步:出一份对比数据

补全 report:格式是列表版次数/集合版次数/倍数。 算 200 条的情况——没有这三个数,"我的方案更好"就只是一句口号。

开始练习 →

第四步:优化之后行为不能变

慢版(列表判重)和快版(集合判重)各跑一遍,比较结果是否完全相同。 相同输出 结果一致,否则输出 结果不一致。

开始练习 →

交付:选型 + 实现 + Benchmark + 优化

这是这条路线、也是整个数据结构领域的最终作品。把选型、实现、对比数据、边界处理全写出来,然后一次验完五条: choose("判重还要保序") 给出「集合加列表」,表外的需求给出「还得再想想」 去重结果按首次出现是 苹果、

开始练习 →