], ..., nums[k-1]](下标 从 0 开始 计数)
例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]
关于这段描述还有另外一种容易理解的说法...:
将数组第一个元素挪到最后的操作,称之为一次旋转
现将nums进行了若干次旋转
给你 旋转后 的数组 nums 和一个整数 target
如果 nums 中存在这个目标值 target
则返回它的下标...所以算法:
时间复杂度:O(n)
空间复杂度:O(1)
###代码实现1
思路1的代码实现如下
/**
* 暴力破解法
*
* @param num 给定的旋转后数组...最终问题会简化为在一个增序数据中的普通二分查找
我们用数组[1,2,3,4,5,6,7,8,9]举例说明
target目标值为7
3次旋转之后是这个样子
使用二分查找的话,首先还是先找到中位数
即下表为...(0+8)/2=4
nums[4] = 8
此时8>nums[start=0]=4的
同时8>target=7
所以可以判断出
此时mid=4是处在第一段中的
而且目标值在mid=4的前边
此时,查找就简化为了在增序数据中的查找了