#3839. 兔猫信奥学院的“旋转寻迹”

兔猫信奥学院的“旋转寻迹”

🏫 题目名称:兔猫信奥学院的“旋转寻迹”

🐰🐱 题目描述

兔猫信奥学院的魔法画廊里挂着一组神秘的“光之刻度”序列,它本来按升序排列,却在一次魔法实验中被逆转至未知的切点,使得整条刻度带绕了一圈。加菲老师提出挑战:

“给你这条被旋转过后的刻度带 nums(原序严格升序且互不相同)和一个目标刻度 target,请你在 (O(\log n)) 时间内,快速定位到 target 在画廊中的位置。如果不存在,就返回 (-1)。”

小兔小猫互相对望:“用二分法巧妙判断有序区间,就能在旋转中找回正确位置!”


📥 输入格式

第一行:两个整数 n, target  
第二行:n 个整数 nums[i],表示被旋转后的刻度带
  • (1 \le n \le 5000)
  • (-10^4 \le nums[i] \le 10^4)
  • 所有 nums[i] 互不相同
  • 题目保证原序列在某个未知下标 k(0 ≤ k < n)处旋转

📤 输出格式

一个整数:target 在 nums 中的下标(0~n-1),不存在则输出 -1

💡 样例

样例 1

7 0
4 5 6 7 0 1 2
4

“0” 在第 4 个位置。

样例 2

7 3
4 5 6 7 0 1 2
-1

“3” 不在刻度带中。

样例 3

1 0
1
-1

仅有一个元素 1,目标 0 未出现。


📊 数据范围

  • 数组长度 (n) 最多 5000。
  • 元素取值范围 ([-10^4,,10^4])。
  • 要求算法时间复杂度 (O(\log n))。