#3835. 兔猫信奥学院的“起止之境”搜寻

兔猫信奥学院的“起止之境”搜寻

🏫 题目名称:兔猫信奥学院的“起止之境”搜寻

🐰🐱 题目描述

在兔猫信奥学院的图书阁里,加菲老师发现了一本记载海量魔法符文的手抄卷轴。这些符文编号按非递减顺序排列,每个编号都可能重复出现。为了检验小兔和小猫的技巧,加菲老师提出挑战:

“给你一个符文编号数组 nums(非递减排序)和一个目标编号 target,请你找出符文在这卷轴中第一次和最后一次出现的位置。如果根本没有出现,就返回 [-1, -1]。记住,这个卷轴很长,你需要 \(O(\log n)\) 的方法快速定位。”

小兔微笑道:“二分法一定能帮我们迅速找到边界!”
小猫点头:“没错,咱们直接在左侧和右侧各找一次就好了~”


📥 输入格式

第一行:两个整数 n, target  
第二行:n 个整数 nums[i],非递减排列
  • \(0 \le n \le 10^5\)
  • \(-10^9 \le \text{nums}[i] \le 10^9\)
  • \(-10^9 \le \text{target} \le 10^9\)

📤 输出格式

两个整数 L, R  
L 表示 target 第一次出现的下标,R 表示最后一次出现的下标  
(下标从 0 开始计数;如果不存在 target,则输出 -1 -1)

💡 输入输出样例

6 8
5 7 7 8 8 10
3 4
6 6
5 7 7 8 8 10
-1 -1
0 0
-1 -1

📊 数据范围

  • 数组长度 (n) 最多 \(10^5\)
  • 数组元素和目标值范围在 \([-10^9,\,10^9]\)
  • 要求算法时间复杂度 \(O(\log n)\)