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

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

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

阅读更多 →
第四步:优化之后行为不能变

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

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

阅读更多 →
第三步:出一份对比数据

第三步:出一份对比数据

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

阅读更多 →
第二步:按选型实现

第二步:按选型实现

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

阅读更多 →
第一步:写下选型

第一步:写下选型

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

阅读更多 →
这批词去重之后剩几个

这批词去重之后剩几个

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

阅读更多 →
交付时最该写清楚的一件事

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

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

阅读更多 →
一份完整的方案要包含什么

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

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

阅读更多 →
三条边界一起验

三条边界一起验

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

阅读更多 →
一万条也不能退化

一万条也不能退化

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

阅读更多 →