给定一个只包含1、2、3的数组,接下来有多轮询问,每轮询问给定两个整数k和x,要求在数组中找到下标i,使得a[i]等于k,并且a[i]的值与x的差的绝对值最小,输出这些满足条件的下标中最小的那个。请设计算法处理多轮询问。
考察说明
考察预处理、二分查找与多查询场景下的算法优化能力
回答思路
- 理解问题本质是分别维护值为1、2、3的下标集合
- 能够针对x使用二分查找找到最接近的候选下标
- 比较多个候选下标并输出最小差值对应的最小下标
- 能够分析时间复杂度并说明多次询问下的优化策略
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。