题目:
Given a sorted (in ascending order) integer array nums
of n
elements and a target
value, write a function to search target
in nums
. If target
exists, then return its index, otherwise return -1
.
Example 1:
Input: nums
= [-1,0,3,5,9,12], target
= 9
Output: 4
Explanation: 9 exists in nums
and its index is 4
Example 2:
Input: nums
= [-1,0,3,5,9,12], target
= 2
Output: -1
Explanation: 2 does not exist in nums
so return -1
public class BinarySearch {
public static int search(int[] nums, int target) {
//处理特殊例子
//数组为null或者数组为空
if(nums == null || nums.length == 0)
return -1;
//实现业务逻辑
int l = 0;
int r = nums.length - 1;
while(l <= r){
int mid = l + (r - l >> 1);
if(nums[mid] == target)
return mid;
if(target > nums[mid])
l = mid + 1;
else
r = mid - 1;
}
return -1;
}
public static void main(String[] args) {
int[] nums = {-1,0,3,5,9,12};
int target = 9;
System.out.println(search(nums, target));
}
}