704. 二分查找
二分查找
二分查找
二分没什么难的,主要在于循环条件和左右端点移动是+1、-1还是mid。这个根据题意判断,本题找是否存在target,那么nums[mid]已经判断过不是的话,就直接移到mid+1、-1就可以了。很轻松写出答案。
class Solution {
public int search(int[] nums, int tar) {
int n = nums.length;
int l = 0;
int r = n - 1;
while(l <= r) {
int mid = (l + r) >> 1;
if(nums[mid] < tar) {
l = mid + 1;
} else if(nums[mid] > tar) {
r = mid - 1;
} else {
return mid;
}
}
return -1;
}
}