一、题目
升序排列的整数数组 nums 在预先未知的某个点上进行了旋转(例如, [0,1,2,4,5,6,7] 经旋转后可能变为 [4,5,6,7,0,1,2] )。
请你在数组中搜索 target ,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。
解析:
该题可以使用常规的左右指针,左右夹逼找到target。
也可以采用二分搜索的思路:
- 由于该数组是旋转后的数组,所以首先需要确定 中间值 mid 在左部还是右部,然后再调整左右边界
- 如果在左部例如:[3,4,5,6,7,1,2]
- 如果在右部例如:[5,6,7,1,2,3,4]
二、代码
class Solution {
public int search(