您现在的位置是:首页 > 后台技术 > 数据结构与算法数据结构与算法

搜索插入位置(图文)

第十三双眼睛2023-11-24【数据结构与算法】人已围观

简介搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。

思路:搜索能想到二分法,当目标值等于中间值的时候,直接返回中间值下标,如果目标值小于中间值,则右边指针移动到中间位置的前一位,如果目标值大于中间值,左边指针移动到中间位置的后一位,如此循环,直到当左边指针位置大于右边指针位置,跳出循环,这时候返回左边指针就是要插入的位置。代码如下:
public int searchInsert(int[] nums, int target) {
    int l = 0;
    int r = nums.length - 1;
    while (l <= r) {
        int mid = (l + r) / 2;
        if (nums[mid] == target) {
            return mid;
        }
        if (target > nums[mid]) {
            l = mid + 1;
        } else {
            r = mid - 1;
        }
    }
    return l;
}

Tags:

很赞哦! ()

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

本站推荐

站点信息

  • 网站名称:JavaStudy
  • 建站时间:2019-1-14
  • 网站程序:帝国CMS7.5
  • 文章统计242篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们