想清楚再动手

8 分钟

在纸上把解题思路拆成三到五步,每步一句话,再开始敲代码。边想边写是最容易翻车的方式:写到一半发现前面的变量不够用、循环结构不对,只能删掉重来。

以“统计数组里有多少对数之和等于 ”为例,先把步骤写清楚:

  1. 读入数组;
  2. 排序,让它有序;
  3. 用双指针,左右向中间靠拢;
  4. 和大了右指针左移,和小了左指针右移,相等就计数。
sort(a, a + n);
int l = 0, r = n - 1, cnt = 0;
while (l < r) {
    int s = a[l] + a[r];
    if (s == k) { cnt++; l++; r--; }
    else if (s < k) l++;
    else r--;
}

思路清楚了,代码往往一遍就对。想不清楚就硬写,改的时间远比想的时间长。步骤写下来还有个好处:调试时能一步步对照,快速定位是哪一步出了问题。

小纸条

下一道题,先写三步思路再动手。

登录 后可看答案

想清楚再动手 · 考级冲刺 · op599 课程