描述
在一个排序数组中找一个数,返回该数出现的任意位置,如果不存在,返回-1
样例
给出数组 [1, 2, 2, 4, 5, 5].
- 对于 target = 2, 返回 1 或者 2.
- 对于 target = 5, 返回 4 或者 5.
- 对于 target = 6, 返回 -1.
分析
就用简单的二分查找算法解决
源码
public class Solution {
/*
* @param nums: An integer array sorted in ascending order
* @param target: An integer
* @return: An integer
*/
public int findPosition(int[] nums, int target) {
// write your code here
int start = 0;
int end = nums.length - 1;
if (nums.length < 0) {
return -1;
}
while (start <= end) {
int mid = (start + end) / 2;
if (nums[mid] == target) {
return mid;
} else {
if (nums[mid] < target) {
start = mid + 1;
} else {
end = mid - 1;
}
}
}
return -1;
}
}