给定一个非严格升序(可含重复元素)的整数数组,要求找出数字 x 在数组中出现第 k 次时的下标(下标从 0 开始)。若 x 不存在或出现次数不足 k 次,输出 -1。请实现该功能并分析时间复杂度。
考察说明
考察二分查找在可重复有序数组中定位特定出现次数的能力及边界处理
回答思路
- 理解非严格升序的含义,能处理重复元素
- 使用二分查找定位 x 的首次出现和末次出现下标
- 判断出现次数是否大于等于 k,再计算第 k 次出现下标
- 正确分析时间复杂度为 O(log n)
- 对边界情况(如 k 为 0、x 不存在)做处理
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。