给定一个按升序排序的整数数组和一个目标值,如何高效地找出目标值第一次出现和最后一次出现的下标?如果目标值不存在,返回[-1,-1]。请说明你的解法思路、时间复杂度和实现要点。
考察说明
考察二分查找的变体应用、边界条件处理和复杂度分析
回答思路
- 能识别问题本质是二分查找的左右边界扩展
- 能实现查找下界和上界的两个二分或一次二分加扩展
- 正确处理目标值不存在、数组为空和边界下标情况
- 能准确分析时间复杂度O(logn)和空间复杂度O(1)
- 能清晰讲解代码中边界条件(左右指针更新)的选取原因
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。