您的位置:首页 > 其它

33. Search in Rotated Sorted Array

2018-03-14 09:15 337 查看
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(i.e., 
0 1 2 4 5 6 7
 might become 
4 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.public class Solution {
public int search(int[] nums, int target) {
int start = 0;
int end = nums.length - 1;
while (start <= end){
int mid = (start + end) / 2;
if (nums[mid] == target)
return mid;
if (nums[start] <= nums[mid]){
if (target < nums[mid] && target >= nums[start])
end = mid - 1;
else
start = mid + 1;
}
if (nums[mid] <= nums[end]){
if (target > nums[mid] && target <= nums[end])
start = mid + 1;
else
end = mid - 1;
}
}
return -1;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: