#3840. 兔猫信奥学院的“旋转之眼”
兔猫信奥学院的“旋转之眼”
🏫 题目名称:兔猫信奥学院的“旋转之眼”寻找最小值
🐰🐱 题目描述
兔猫信奥学院的魔法河岸上,沿河有一排刻度石,它们本来按照从小到大的编号排列,却被淘气的小兔不小心在某个位置用时空之力「旋转」了多次,使得刻度顺序绕了一圈。加菲老师挑战小猫:
“给你这条被旋转后的刻度带
nums
,它原本是严格升序且互不相同的数组,经过了 1 到 n 次旋转(旋转 n 次效果等同 0 次)。请你用 \(O(\log n)\) 的时间,找出这条刻度带上的最小刻度值——也就是原数组的第一个元素。”
小猫立刻想道:“二分查找巧妙判断哪半区间有序,就能一口气定位最小值!”
📥 输入格式
第一行:整数 n
第二行:n 个整数 nums[i],即被旋转后的数组
- \(1 \le n \le 5000\)
- \(-5000 \le nums[i] \le 5000\)
- 所有 nums[i] 互不相同
- 该数组是某个原升序数组(严格递增)经过 k 次旋转(1≤k≤n)后得到
📤 输出格式
一个整数:数组 nums 中的最小元素
💡 输入输出样例
样例 1
5
3 4 5 1 2
1
原数组 [1,2,3,4,5] 旋转 3 次后得到输入,最小值 1。
样例 2
7
4 5 6 7 0 1 2
0
样例 3
4
11 13 15 17
11
原数组旋转 4 次(等同未旋转),最小值仍是 11。
📊 数据范围
- 数组长度 \(n\) 最多 5000
- 元素取值范围 \([-5000,\,5000]\)
- 要求算法时间复杂度 \(O(\log n)\)