题解 | #二分查找-I#
二分查找-I
https://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b
注意到数组边缘值的比较就可以。
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @param target int整型
* @return int整型
*/
function search(nums, target) {
// write code here
if (!Array.isArray(nums) || nums.length == 0) {
return -1;
}
let len = nums.length,
l = 0,
r = len - 1;
if (nums[0] > target || nums[len - 1] < target) {
return -1;
}
while (l <= r) {
let m = l + Math.floor((r - l) >> 1);
let n = nums[m];
if (n === target) {
return m;
} else if (n < target) {
l = m + 1;
} else if (n > target) {
r = m - 1;
}
}
return -1;
}
module.exports = {
search: search,
};


