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

给定一个长度为 n、仅由数字 1、2、3 组成的数组,进行 q 轮查询。每轮给出位置 x 和数字 k(k 为 1/2/3 之一),要求找到数组中值为 k 且与 x 距离(按下标差的绝对值)最近的下标。请设计一个预处理后查询时间复杂度低于 O(qn) 的算法。

Momenta后端开发互联网/IT编码实现问题拆解技术原理

考察说明

考察离线/在线查询预处理、二分查找与复杂度分析能力

回答思路

  1. 能明确预处理时间与查询时间的关系
  2. 为每个数字分别存储其出现下标的有序列表
  3. 能在每个列表上用二分查找找最近下标
  4. 能正确比较左右两侧候选的距离并处理边界
  5. 能给出整体时间复杂度并解释为何低于 O(qn)
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。