1 | 升序排列的整数数组 nums 在预先未知的某个点上进行了旋转(例如, [0,1,2,4,5,6,7] 经旋转后可能变为 [4,5,6,7,0,1,2] )。 |
先判断nums[mid]和nums[r]的大小关系
如果nums[mid]==target 直接返回
如果nums[mid]<nums[r]那么右半边是有序的
对于右半边的如果nums[mid] < target && target <= nums[r]那么在右半边,否则在左半边
如果nums[mid]>nums[r]那么左半边是有序的
对于左半边的如果nus[mid] > target && target >= nums[l]那么在左半边,否则在右半边
否则存在重复数字,需要一点点移动
1 | class Solution { |