
一起动脑筋 · 先看一个小故事
机器人急着敲代码,女孩先让它在纸上摆三张卡。几分钟后就发现了漏掉的情况。
把过程摊开来看
- 纸上例子先手算
- 描述方法每步做什么
- 找反例试边界和重复
- 再编码把想清的步骤写下来
先设计再编码,可以把规则错误与语法错误分开。
小例子让你观察方法是否覆盖所有需要的情况,之后代码才有明确的参照。
01为什么不能一看到题就写代码?
因为写代码只是“实现方案”,而不是“理解问题”本身。
如果题意还没弄清楚,就开始写,很容易出现:
- 理解错目标
- 漏掉特殊情况
- 选择了太慢的算法
- 代码写了很多才发现方向错了
02第一步先问四个问题
输入是什么?
程序会得到哪些数据?
输出是什么?
最终要打印什么?
目标是什么?
到底要算什么、找什么?
范围多大?
n 最大是多少?
03先用自己的话复述题目
如果你不能用一两句话说清楚题目,就说明理解还不够稳。
04再手算一个最小例子
不要只看官方样例。自己构造一个只有 1~3 个元素的小例子,手工算出答案。
这一步可以帮助你确认:你理解的规则,和题目真正要求的是不是同一件事。
05什么时候才开始想算法?
当你已经明确:
- 问题目标
- 输入输出
- 限制条件
- 至少一个手算例子
这时再问:“我会哪些方法可以解决?”
06什么时候开始写代码?
读懂题目→想清算法→最后编码
代码应该是思路已经基本稳定后的表达,而不是用来替代思考。
你已经知道了什么
- 解题第一步不是写代码,而是理解问题。
- 要先明确输入、输出、目标和数据范围。
- 用自己的话复述题意能检查理解。
- 手算小例子可以验证模型。
- 代码是算法方案的实现,不应代替前面的分析。
下一篇:怎样真正读懂一道题?
轮到你来试一试
写代码前发现方法会漏掉重复数字,有什么好处?
想好了吗?点开看解释
能先修正方法,避免写完大量代码后再重新设计。