searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

二分查找-算法学习

2023-07-13 06:05:58
3
0

题目详情:
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

示例:
输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

解题思路:
在每次循环中,我们计算中间位置的下标 mid,并将中间元素与目标值进行比较。如果它们相等,则找到了目标值,返回中间下标。

如果中间元素小于目标值,则说明目标值应该在右半部分,我们更新左指针 left 为 mid + 1,缩小搜索范围。

如果中间元素大于目标值,则说明目标值应该在左半部分,我们更新右指针 right 为 mid - 1,缩小搜索范围。

重复上述步骤,直到找到目标值或搜索范围为空(即 left > right),此时返回 -1 表示没有找到目标值。

代码实现:
function search(nums, target) {
    let left = 0;
    let right = nums.length - 1;

    while (left <= right) {
        const mid = Math.floor((left + right) / 2);

        if (nums[mid] === target) {
            return mid; // 找到目标值,返回下标
        } else if (nums[mid] < target) {
            left = mid + 1; // 目标值在右半部分,缩小搜索范围
        } else {
            right = mid - 1; // 目标值在左半部分,缩小搜索范围
        }
    }

    return -1; // 没有找到目标值,返回 -1
}

// 示例输入
const nums = [-1, 0, 3, 5, 9, 12];
const target = 9;

// 调用函数并输出结果
console.log(search(nums, target));

0条评论
作者已关闭评论
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
原创

二分查找-算法学习

2023-07-13 06:05:58
3
0

题目详情:
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

示例:
输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

解题思路:
在每次循环中,我们计算中间位置的下标 mid,并将中间元素与目标值进行比较。如果它们相等,则找到了目标值,返回中间下标。

如果中间元素小于目标值,则说明目标值应该在右半部分,我们更新左指针 left 为 mid + 1,缩小搜索范围。

如果中间元素大于目标值,则说明目标值应该在左半部分,我们更新右指针 right 为 mid - 1,缩小搜索范围。

重复上述步骤,直到找到目标值或搜索范围为空(即 left > right),此时返回 -1 表示没有找到目标值。

代码实现:
function search(nums, target) {
    let left = 0;
    let right = nums.length - 1;

    while (left <= right) {
        const mid = Math.floor((left + right) / 2);

        if (nums[mid] === target) {
            return mid; // 找到目标值,返回下标
        } else if (nums[mid] < target) {
            left = mid + 1; // 目标值在右半部分,缩小搜索范围
        } else {
            right = mid - 1; // 目标值在左半部分,缩小搜索范围
        }
    }

    return -1; // 没有找到目标值,返回 -1
}

// 示例输入
const nums = [-1, 0, 3, 5, 9, 12];
const target = 9;

// 调用函数并输出结果
console.log(search(nums, target));

文章来自个人专栏
js
57 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0