后端岗位面试题更新 2026-08-05

给你一条无限长的路,路上有n个行人,每个人有速度和移动方向,求最先碰面的两个行人相遇所需的时间,并分析时间复杂度。

网易游戏后端开发游戏问题拆解

考察说明

考察算法建模与时间复杂度分析能力,能否把物理问题转化为可计算的数学最值问题

回答思路

  1. 正确区分相向而行和同向而行的情况,理解只有方向相对的行人才会相遇
  2. 推导出每对相遇时间的公式:相对距离除以相对速度(相向时速度相加)
  3. 通过枚举所有相向行人对求最小时间,给出O(n^2)暴力解法
  4. 分析能否优化到O(n log n)或O(n),并说明在什么条件下可优化(如只关心最小时间时用排序或扫描)
  5. 体现对时间复杂度的正确计算与表达,最好能证明或解释算法正确性