描述
在一個排序數(shù)組中找一個數(shù),返回該數(shù)出現(xiàn)的任意位置,如果不存在,返回-1
樣例
給出數(shù)組 [1, 2, 2, 4, 5, 5].
對于 target = 2, 返回 1 或者 2.
對于 target = 5, 返回 4 或者 5.
對于 target = 6, 返回 -1.
挑戰(zhàn)
O(logn) 的時間
代碼
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) {
if (nums == null || nums.length == 0) {
return -1;
}
int start = 0, end = nums.length - 1;
while (start + 1 < end) {
int mid = (end - start) / 2 + start;
if (nums[mid] == target) {
return mid;
}
if (nums[mid] < target) {
start = mid;
}
if (nums[mid] > target) {
end = mid;
}
}
return -1;
}
}