- 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
来源:力扣(LeetCode) 链接:leetcode.cn/problems/bi… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
/**
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
var search = function (nums, target) {
// 方法一
// let s = 0, e = nums.length - 1;
// while (s <= e) {
// let m = Math.floor((s + e) / 2)
// if (target > nums[m]) {
// s = m + 1
// } else if (target < nums[m]) {
// e = m - 1
// } else {
// return m
// }
// }
// return -1
// 方法二
const searchNum = (arr, s, e, key) => {
let m = Math.floor((s + e) / 2)
if (s <= e) {
if (key > arr[m]) {
return searchNum(arr, m + 1, e, key)
} else if (key < arr[m]) {
return searchNum(arr, s, m - 1, key)
} else {
return m
}
} else {
return -1
}
}
return searchNum(nums, 0, nums.length - 1, target)
};