实现按关键词查找。
算法进阶 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
实现按难度排序。
实现统计功能。
实现存档和读档。
完整跑一遍你的题库管理器。
故意乱输,看程序会不会崩。
为什么先写临时文件更安全?
给你的项目写一份说明。
照说明从头跑一遍。
找一个人用你的程序。
参考答案(家长):写好比较规则交给排序函数。
参考答案(家长):遍历比对,或先建索引加速。
参考答案(家长):约定一个简单的文件格式,逐行写逐行读。
参考答案(家长):遍历一遍分类计数。
参考答案(家长):崩了就是要补的地方。
参考答案(家长):能跑通就是一个真正的作品。
参考答案(家长):四段话加一张运行截图就够。
参考答案(家长):中途失败时原文件还完好。
参考答案(家长):你会忍不住想解释,那说明界面没讲清楚。
参考答案(家长):漏掉的步骤补进说明。
根据反馈改进一处。
什么时候需要考虑性能?
怎么测量哪一步慢?
举一个你做过的权衡。
为什么"对"要排第一?
列出两者的三条差别。
你目前哪一样更强?
计时完成并记录每题用时。
写下三条具体的改进措施。
这次刻意执行你写下的措施。
参考答案(家长):数据量大到用户能感觉到慢的时候。
参考答案(家长):一次改一处,改完验证。
参考答案(家长):如前缀和、缓存、预处理。
参考答案(家长):在关键位置记时间戳,输出各段耗时。
参考答案(家长):如变量命名、注释、错误处理的要求完全不同。
参考答案(家长):不对的程序再快也没有价值。
参考答案(家长):记录数据才知道哪个环节要改进。
参考答案(家长):多数竞赛出身的人工程弱,要有意识地补。
参考答案(家长):措施只有被执行才有意义。
参考答案(家长):措施要具体到"下次遇到 X 我先做 Y"。
写下对比结论。
录入最近做的二十道题。
看看你的统计结果,最弱的是哪类?
挑出最弱的一类开始补。
翻翻第一年的纸条。
诚实打分。
查一查这四门课各讲什么。
想一个"不懂原理就解决不了"的问题。
这个方法和学算法有什么共同点?
给自己定一个能坚持的节奏。
参考答案(家长):录入的过程本身就是一次复习。
参考答案(家长):有进步就保持,没进步就换方法。
参考答案(家长):十道之后再看正确率变化。
参考答案(家长):数据常常和感觉不一样,这正是它的价值。
参考答案(家长):分低的就是接下来要补的。
参考答案(家长):会发现当初的难题现在是常识。
参考答案(家长):如程序为什么突然变慢、网络为什么断。
参考答案(家长):分别是数学基础、硬件原理、系统管理、通信原理。
参考答案(家长):还是每天十分钟,不求快。
参考答案(家长):都要先知道"为什么需要它",再学"怎么用"。