题解 | #二分查找-I#
https://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b
- 设置两个检查点
- 因为数组是升序数组,所以去数组中点来与目标值target进行对比,不断缩小范围
- 当中点与target判断之后,以中点为基准对两个检查点进行加一或者是减一操作
- 当target与中点相同,那就是当前坐标
- 失败返回-1
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @param target int整型
* @return int整型
*/
export function search(nums: number[], target: number): number {
// write code here
//let index = nums.indexOf(target)
let index = -1
//空
if(nums.length==0) {
return -1
}
/*
for(let i = 0,j=nums.length-1;i<j;i++,j--) {
let middle=Math.floor((i+j)/2)
if(nums[middle]>)
}*/
let i=0,j=nums.length-1,middle=0
while(i<=j) {
middle=Math.floor((i+j)/2)
if(nums[middle]>target) {
j=middle-1
}
else if(nums[middle]<target){
i=middle+1
}else {
return middle
}
}
return index
}
