leetcode117:search-rotated-sorted-array
阿新 • • 發佈:2020-08-01
題目描述
給出一個轉動過的有序陣列,你事先不知道該陣列轉動了多少(例如,0 1 2 4 5 6 7可能變為4 5 6 7 0 1 2).
在陣列中搜索給出的目標值,如果能在陣列中找到,返回它的索引,否則返回-1。
假設陣列中不存在重複項。
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e.,0 1 2 4 5 6 7might become4 5 6 7 0 1 2).
You are given a target value to search. If found in the array return its index, otherwise return -1.
You may assume no duplicate exists in the array.
示例1
輸入
複製[1],0
輸出
複製-1
class
Solution {
public
:
int
search(
int
A[],
int
n,
int
target) {
if
(A == nullptr||n==0)
return
-1;
int
left = 0;
int
right = n-1;
while
(left<=right){
int
mid = left + (right - left)/2;
if
(A[mid] == target)
return
mid;
if
(A[left] <= A[mid]){
if
(A[left]<=target&&A[mid]>target)
right = mid-1;
else
left = mid+1;
}
else
{
if
(A[mid]<target&&A[right]>=target)
left = mid+1;
else
right = mid-1;
}
}
return
-1;
}
};