LeetCode-33-搜索旋转排序树组
#include<iostream>
using namespace std;
int main(){
int nums[8] = { 4, 5, 6, 7, 8,0, 1, 2 };
int target;
cin >> target;
while (target != -1){
int left = 0, right = 7;//双指针
int mid = (left + right) / 2;
int ans = -1;
while (left <= right){//二分法
if (nums[mid] == target){
ans = mid;
}
if (nums[mid] > target){
if (nums[mid] > nums[0]){
if (target >= nums[0]){
right = mid - 1;
}
else{
left = mid + 1;
}
}
else{
right = mid - 1;
}
}
else{
if (nums[mid]<nums[0]){
if (target > nums[0]){
right = mid - 1;
}
else{
left = mid + 1;
}
}
else{
left = mid + 1;
}
}
mid = (left + right) / 2;
}
cout << ans << endl;
cin >> target;
}
return 0;
}