阅读优秀代码

10 分钟

读优秀题解,读的不是"答案",而是"结构":它怎么把逻辑拆成小函数、变量怎么命名、边界怎么优雅处理。读到会心处,盖住原文自己重写一遍,能一次写对才算真的吸收;只看不写,等于没读。

比如这段求最小公倍数的代码,短短几行藏着两处值得学的细节:

int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
long long lcm(int a, int b) {
    return (long long)a / gcd(a, b) * b;   // 先除后乘, 防溢出
}

一是职责单一:gcd 只管最大公约数,lcm 复用它,逻辑清爽;二是那句"先除后乘"——数学上 ,但若先算 可能超过 int,所以先用 (一定整除)再乘 ,既正确又不溢出。这种"看似能跑却暗藏溢出"的处理,正是从优秀代码里偷师的重点。读完请合上,凭理解重写。

小纸条

读完自己重写一遍,不看原文。

登录 后可看答案

阅读优秀代码 · 考级冲刺 · op599 课程