2017.9.25
不知道从头开始查找会不会超时,没有尝试。
稍微优化了一下下。和首元素和末元素先比较。如果大于首元素,则从头开始遍历。如果小于尾元素,则从尾开始遍历。
public class Solution {
/*
* @param A: an integer rotated sorted array
* @param target: an integer to be searched
* @return: an integer
*/
public int search(int[] A, int target) {
// write your code here
int length = A.length;
if(length <= 0){
return -1;
}
if(target < A[0] && target > A[length -1 ]){
return -1;
}
int i = 0;
if(target >= A[0]){
while(i < length && A[i] <= target){
if(A[i] == target){
return i;
}
i++;
}
return -1;
}
i = length - 1;
if(target <= A[i]){
while(i >= 0 && A[i] >= target){
if(A[i] == target){
return i;
}
i--;
}
}
return -1;
}
}
本文介绍了一种针对旋转排序数组的搜索算法优化方案。通过比较目标值与数组首尾元素,选择从头部或尾部开始遍历,提高了搜索效率。
511

被折叠的 条评论
为什么被折叠?



