class Solution {
public int search(int[] nums, int target) {
if(nums==null||nums.length==0)return -1;
int low=0;
int hi=nums.length-1;
while(low<hi){
int mid=(low+hi)/2;
if(nums[mid]>nums[hi]){
low=mid+1;
}
else if(nums[mid]<nums[hi]){
hi=mid;
}
}
int rot=low;
low=0;
hi=nums.length-1;
while(low<=hi){
int mid=(low+hi)/2;
int realmid=(rot+mid)%nums.length;
if(nums[realmid]==target)return realmid;
if(nums[realmid]<target)low=mid+1;
else hi=mid-1;
}
return -1;
}
}
class Solution { public int search(int[] nums, int target) { if(nums==null||nums.length==0)return -1; if(nums.length==1){ if(target==nums[0])return 0;...