给定一个按升序排列的整数数组,在某一个未知点进行了旋转(例如 [0,1,2,4,5,6,7] 旋转后可能变为 [4,5,6,7,0,1,2]),请搜索给定的目标值。如果存在则返回其索引,否则返回 -1。要求时间复杂度为 O(log n)。
考察说明
考察二分查找在旋转有序数组上的变体应用与边界条件处理能力
回答思路
- 识别旋转数组的二分查找特殊条件与正确性
- 正确处理数组未旋转或数组长度为0的情况
- 分析二分后哪一侧有序并决定搜索方向
- 对重复元素或目标值在边界情况的索引准确性
- 代码实现清晰度与时间复杂度达到 O(log n)
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。