二分查找需要先设定一个头指针和一个尾指针,然后通过两个指针算出中间值middle
nums[middle] > target 代表所要找的值在中间值的左侧,所以,中间值减一,然后把值赋值给尾指针
nums[middle]< target 代表所要找的值在中间值的友侧,所以,中间值加一,然后把值赋值给头指针
nums[middle] = target 代表找到了指定元素
class Solution{
public int search(int[] nums,int target){
int left = 0;
int right = nums.length-1;
while(left<=right){
int middle = (left+right)/2;
if(nums[middle] == target){
return middle;
}else if(nums[middle]>target){
right = middle - 1;
}else if(nums[middle] < target){
left = middle+1;
}
}
return -1;
}
}
暂无讨论,说说你的看法吧