首页课程小红花墙

算法进阶 · 小纸条

选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。

第 1 章30第 2 章30第 3 章30第 4 章30第 5 章30第 6 章30第 7 章30第 8 章30第 9 章30第 10 章30第 11 章30第 12 章30第 13 章30第 14 章30第 15 章30第 16 章30第 17 章30第 18 章30第 19 章30第 20 章30第 21 章30第 22 章30第 23 章30第 24 章30第 25 章10
只印题目
第 1 页 · 正面(题目)
1建立知识网

画出你的知识网。

2反思学习效率

写下对你最有效的两种。

3保持热情

想想编程里什么最让你觉得有意思。

4处理挫折

回想一次挫折,写下你从中学到了什么。

5长期主义

算算你已经坚持了多少天。

6复习:算法全景

默写这张全景图。

7查漏

找出你的两个漏洞。

8制定下阶段计划

写下你对这四门的初步印象。

9竞赛与地基的关系

想想为什么只会刷题不够。

10阶段小结

更新你的知识地图。

第 1 页 · 背面(答案)

参考答案(家长):知道自己的方式,学习效率能翻倍。

参考答案(家长):有联系的知识记得更牢,也更容易迁移。

参考答案(家长):能说出学到什么,挫折就有了价值。

参考答案(家长):有人爱解谜,有人爱做出东西,都好。

参考答案(家长):能默写出来,说明体系已经建立。

参考答案(家长):一千六百多天,这本身就是很了不起的事。

参考答案(家长):有个印象,学起来会更有方向。

参考答案(家长):补漏比重复练已会的收益高得多。

参考答案(家长):地图越完整,遇到新题越容易定位。

参考答案(家长):不懂计算机原理,很多性能问题和系统问题都想不明白。

第 2 页 · 正面(题目)
11从会做题到会写程序

想想你写过最长的程序有多少行。

12把题解写成模块

把一道做过的题拆成三块。

13函数的职责

找一个你写过的"什么都干"的函数拆开。

14参数不要太多

把"姓名、年龄、成绩"三个参数打包。

15少用全局变量

为什么全局变量难查?

16常量要有名字

给 998244353 起个名字。

17魔法数字的危害

检查你的代码里有没有重复出现的数字。

18写注释的时机

给一段绕的逻辑加一句"为什么"注释。

19代码即文档

把一段用 a、b、c 的代码改成有意义的名字。

20单元测试的思想

给"判断质数"的函数设计五组测试。

第 2 页 · 背面(答案)

参考答案(家长):拆完会发现算法部分其实很短。

参考答案(家长):多数人不超过两百行,真实项目要大得多。

参考答案(家长):定义一个结构体,传一个就够。

参考答案(家长):拆完每个都好测也好懂。

参考答案(家长):如 MOD,一看就知道是模数。

参考答案(家长):任何地方都能改它,出错时不知道是谁改的。

参考答案(家长):如"这里必须倒序,否则物品会被重复选取"。

参考答案(家长):抽成常量,改一处即可。

参考答案(家长):1、2、质数、合数、大数各一组。

参考答案(家长):改完往往就不需要注释了。

第 3 页 · 正面(题目)
21边界测试

给"数组求和"设计边界测试。

22回归测试

为什么手工测试很难做到?

23版本管理

给你的代码文件夹建一个版本库。

24提交要有说明

给一次改动写一句提交说明。

25一次提交一件事

为什么小步提交更好?

26重构的时机

重构前必须有什么?

27重构的方向

挑一段代码做一次小重构。

28做一个完整项目

先在纸上列出需要哪些功能。

29设计数据结构

设计题目的数据结构。

30先跑通一条线

完成这条最短流程。

第 3 页 · 背面(答案)

参考答案(家长):太累会偷懒,机器不会。

参考答案(家长):空数组、一个元素、全负数、极大值。

参考答案(家长):如"修复二分边界导致的死循环"。

参考答案(家长):哪怕只有自己用,也值得。

参考答案(家长):能验证功能没坏的测试。

参考答案(家长):范围小,出问题容易定位也容易回退。

参考答案(家长):如添加、列出、查找、删除、存档、读档。

参考答案(家长):改完跑测试,确认功能不变。

参考答案(家长):有一条能跑通的线,后面就是往上加。

参考答案(家长):如编号、标题、难度、标签、是否做过。

op599 课程