[LeetCode 33] Search in rotated
作者:
灰睛眼蓝 | 来源:发表于
2019-05-22 12:38 被阅读0次class Solution {
public int search(int[] nums, int target) {
if (nums == null || nums.length == 0) {
return -1;
}
int start = 0;
int end = nums.length - 1;
while (start + 1 < end) {
int middle = start + (end - start) / 2;
if (nums [middle] == target)
return middle;
// [start - middle]: ascending order
if (nums[start] < nums [middle]) {
if (nums [start] <= target && target <= nums [middle]) {
end = middle;
} else {
start = middle;
}
} else { // [middle - end]: ascending order
if (nums [middle] <= target && target <= nums [end]) {
start = middle;
} else {
end = middle;
}
}
}
if (nums [start] == target)
return start;
if (nums [end] == target)
return end;
return -1;
}
}
本文标题:[LeetCode 33] Search in rotated
本文链接:https://www.haomeiwen.com/subject/oikjzqtx.html
网友评论