Binary Search - Array 模板
class Solution {
public int search(int[] nums, int target) {
if (nums == null || nums.length == 0) return -1;
int left = 0, right = nums.length - 1;
while (left + 1 < right) {
int mid = left + (right - left) / 2;
if (nums[mid] == target) return mid; //直接返回index
else if (nums[mid] > target) right = mid;
else left = mid;
}
// 必须要检查两个,因为有可能在任一个位置
if (nums[left] == target) return left;
if (nums[right] == target) return right;
return -1;
}
}Last updated