题目:
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)); } }
