題目描述
給定一個 n 個元素有序的(升序)整型數組 nums 和一個目標值 target ,寫一個函數搜索 nums 中的 target,如果目標值存在返回下標,否則返回 -1。
提示:
- 你可以假設 nums 中的所有元素是不重複的。
- n 將在 [1, 10000]之間。
- nums 的每個元素都將在 [-9999, 9999]之間。
思路分析
最基礎的二分查找。在不重複的數組中找到目標數。
代碼實現
public int search(int[] nums, int target) {
int left = 0, right = nums.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (nums[mid] == target) {
return mid;
} else if (nums[mid] > target) {
right = mid - 1;
} else if (nums[mid] < target) {
left = mid + 1;
}
}
return -1;
}