/*此题可采用暴力解法。但其实考查的其实二分查找:尽管整个数组并不不一定是全部有序的,
但是当我们将数组及其字数组从中截断时,至少有一半的部分是有序的,我们可以根据这一半
来采用二分查找的方式。
方法参考自:https://github.com/soulmachine/leetcode*/
class Solution {
public:
int search(int A[], int n, int target) {
int start(0),end(n);
while(start != end){
int mid((start + end) / 2);
if(A[mid] == target) return mid;
if(A[start] < A[mid]){//数组前一半有序
if(A[start] <= target && target < A[mid]){
end = mid;
}
else{
start = mid + 1;
}
}
else{//数组后半段有序
if(A[mid] < target && target <= A[end-1]){
start = mid + 1;
}
else
{
end = mid;
}
}
}
return -1;
}
};
LeetCode之Search in Rotated Sorted Array
最新推荐文章于 2024-05-03 20:14:24 发布