题目
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.
(i.e., [0,1,2,4,5,6,7]
might become [4,5,6,7,0,1,2]
).
You are given a target value to search. If found in the array return its index, otherwise return -1.
You may assume no duplicate exists in the array.
Your algorithm’s runtime complexity must be in the order of O(log n).
Example 1:
1 | Input: nums = [4,5,6,7,0,1,2], target = 0 |
Example 2:
1 | Input: nums = [4,5,6,7,0,1,2], target = 3 |
思路
二分查找。
不过此题是Rotated Sorted Array,所以不能通过mid与左右指针指向的值的比较来移动指针。而是通过判断哪一部分是有序的,target是否在这个有序的部分来实现。
代码
1 | class Solution(object): |