时间复杂度(O(log(n))),思想,二分查找,
class Solution {
public:
int search(vector<int>& nums, int target) {
int min_index=0;
for(int i=1;i<nums.size();++i)
if(nums[i]<nums[i-1]){
min_index = i;
break;
}
int result = triSearch(nums,0,min_index-1,target);
if(result!=-1)return result;
return triSearch(nums,min_index,nums.size()-1,target);
}
int triSearch(vector<int> nums,int start,int end,int k){
while(start<=end)
if(nums[(start+end)/2]==k)return (start+end)/2;
else if(nums[(start+end)/2]>k) end = (start+end)/2-1;
else start = (start+end)/2+1;
return -1;
}
};