intsearch(vector<int>&nums,int target){int len = nums.size();int right = len-1, left =0;//boundary conditionif(len ==0)return-1;if(len ==1){if(nums[0]== target)return0;elsereturn-1;}for(int i =0; i < len -1; i++){//firstly ,find the rotated pointif(nums[i]> nums[i +1]){
nums.push_back(nums[i]);
right = nums.size()-1;
left = i +1;break;}
nums.push_back(nums[i]);}//binary_searchwhile(left < right){int mid =(left + right)/2;if(target == nums[mid]){
left=mid;break;}elseif(target > nums[mid]){
left = mid +1;}else{
right = mid -1;}}//if we can not find the target in the vector, return -1if(nums[left]!= target)return-1;//transfer the left to indexreturn left >= len ? left - len : left;}
思路:利用vector变长特性,将前面旋转的部分移到后面,然后二分查找,O(logn)复杂度int search(vector<int> &nums, int target){ int len = nums.size(); int right = len-1, left = 0; //boundary condition if (len ...