拿下技术面上传简历

下面这段 Python 代码用来判断整数数组里是否存在两个不同下标 i < j,使得 nums[i] + nums[j] == target: def f(a, t): for i in range(len(a)): for j in range(len(a)): if i != j and a[i] + a[j] == t: return True return False 请指出这段代码在可读性上的具体问题,并给出你的重构版本。要求:不改变它的输入输出行为;每一处改动都要说出理由,不要只说「这样更清晰」。

代码能力与调试排障现场编码校招知识点 1 个

面试官在考什么

看候选人能不能把「能跑但读起来费劲」的代码改成别人一眼能看懂的形式,并且改动的每一步都有具体理由而不是凭感觉。

代码可读性

回答框架 · 前两步

  1. 命名问题具体指出:f / a / t / i / j 表达不出意图,应改成类似 has_pair_with_sum(nums, target) 以及 left/right 这类能读出含义的名字。
  2. 循环结构问题:内层从 0 遍历再用 i != j 排除自身,既多了一半无效比较,又没把「i < j」这个业务约束直接写进循环条件;改成内层从 i+1 开始,语义和性能同时变清楚。

还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

同一能力域的其他题