写注释给自己
约 8 分钟
注释不是写给评委看的,是写给几分钟后正在调试、脑子已经乱掉的自己看的。不用每行都写,只在“为什么这么做”不明显的地方加一句。比如一个不好懂的边界、一个特意的加一减一、一个容易看反的判断。
// 找第一个 >= target 的位置, 用左闭右开区间 [l, r)
int l = 0, r = n;
while (l < r) {
int mid = l + (r - l) / 2; // 这样写防止 l+r 溢出
if (a[mid] >= target) r = mid; // mid 可能是答案, 保留
else l = mid + 1; // mid 一定不是, 排除
}
// 循环结束时 l == r, 就是答案位置
上面这几句注释,把二分里最容易写错的“区间开闭”和“mid 保留还是排除”说清楚了。调试时你一眼就知道自己当初的想法,不用重新推一遍。注释是给未来的自己留的线索,关键时候真能救命。
小纸条
给你最近一段绕的代码加一句注释。
登录 后可看答案