题目描述:

​         给定一个 ​n​ 个元素有序的(升序)整型数组 ​​​nums​​​ 和一个目标值 ​​​target​​​ ​​​nums​​​ ​​​target​​​,如果目标值存在返回下标,否则返回 ​​​-1​​​

分析:

方式一:顺序查找(通过遍历)

方式二:二分查找(前提:数组有序)                

实现代码如下:

class Solution {
public int search(int[] nums, int target) {
int left=0;
int right=nums.length-1;
while(left<=right){
int middle=left+(right-left)/2;//此写法可以防止溢出
if(nums[middle]<target){
left=middle+1;
}else if(nums[middle]>target){
right=middle-1;
}else{
return middle;
}
}
return -1;
}
}