女孩和机器人一起思考

一起动脑筋 · 先看一个小故事

机器人急着敲代码,女孩先让它在纸上摆三张卡。几分钟后就发现了漏掉的情况。

把过程摊开来看

沿着编号看一遍,再用自己的话讲一遍
  1. 纸上例子先手算
  2. 描述方法每步做什么
  3. 找反例试边界和重复
  4. 再编码把想清的步骤写下来

先设计再编码,可以把规则错误与语法错误分开。

小例子让你观察方法是否覆盖所有需要的情况,之后代码才有明确的参照。

01为什么不能一看到题就写代码?

因为写代码只是“实现方案”,而不是“理解问题”本身。

如果题意还没弄清楚,就开始写,很容易出现:

  • 理解错目标
  • 漏掉特殊情况
  • 选择了太慢的算法
  • 代码写了很多才发现方向错了

02第一步先问四个问题

输入是什么?

程序会得到哪些数据?

输出是什么?

最终要打印什么?

目标是什么?

到底要算什么、找什么?

范围多大?

n 最大是多少?

03先用自己的话复述题目

如果你不能用一两句话说清楚题目,就说明理解还不够稳。

04再手算一个最小例子

不要只看官方样例。自己构造一个只有 1~3 个元素的小例子,手工算出答案。

这一步可以帮助你确认:你理解的规则,和题目真正要求的是不是同一件事。

05什么时候才开始想算法?

当你已经明确:

  • 问题目标
  • 输入输出
  • 限制条件
  • 至少一个手算例子

这时再问:“我会哪些方法可以解决?”

06什么时候开始写代码?

读懂题目想清算法最后编码

代码应该是思路已经基本稳定后的表达,而不是用来替代思考。

你已经知道了什么

  • 解题第一步不是写代码,而是理解问题。
  • 要先明确输入、输出、目标和数据范围。
  • 用自己的话复述题意能检查理解。
  • 手算小例子可以验证模型。
  • 代码是算法方案的实现,不应代替前面的分析。

下一篇:怎样真正读懂一道题?

轮到你来试一试

写代码前发现方法会漏掉重复数字,有什么好处?

想好了吗?点开看解释

能先修正方法,避免写完大量代码后再重新设计。