【大厂高频算法题】二分查找
题目:请实现无重复数字的升序数组的二分查找。
难度:简单
代码:
class Solution {
public int search(int[] nums, int target) {
int high = nums.length - 1;
int low = 0;
int mid = 0;
if (target < nums[low] || target > nums[high] || low > high) {
return -1;
}
while (low <= high) {
mid = (low + high) / 2;
// 比mid大则在左边,比mid小则在右边
if (nums[mid] > target) {
high = mid - 1;
} else if (nums[mid] < target) {
low = mid + 1;
} else {
return mid;
}
}
return -1;
}
}