当前位置: 首页 > news >正文

企业网站建设可行性分析表德州网站制作公司

企业网站建设可行性分析表,德州网站制作公司,网页网站培训班,基本建设工程兵网站问题描述 给定一个已排序的整数数组 nums 和一个目标值 target,要求在数组中找到目标值并返回其索引。如果目标值不存在于数组中,则返回它按顺序插入的位置。必须使用时间复杂度为 O(log n) 的算法。 示例: 示例1: 输入: nums …

问题描述

给定一个已排序的整数数组 nums 和一个目标值 target,要求在数组中找到目标值并返回其索引。如果目标值不存在于数组中,则返回它按顺序插入的位置。必须使用时间复杂度为 O(log n) 的算法。

示例:

  • 示例1:

    输入: nums = [1,3,5,6], target = 5
    输出: 2
  • 示例2:

    输入: nums = [1,3,5,6], target = 2
    输出: 1
  • 示例3:

    输入: nums = [1,3,5,6], target = 7
    输出: 4

解题思路

为什么用二分查找?

由于数组已排序,且要求时间复杂度为 O(log n),自然联想到二分查找。但不同于标准二分查找的是,当目标值不存在时,需要找到插入的位置。

核心思路

  1. 初始化指针:定义两个指针 left 和 right,分别指向数组的首尾。

  2. 二分缩小范围

    • 计算中间索引 mid

    • 比较 nums[mid] 与 target

      • 若 nums[mid] < target,说明目标值在右半部分,调整 left = mid + 1

      • 否则,调整 right = mid - 1,因为此时 mid 可能是插入点或目标值在左半部分。

  3. 终止条件:当 left > right 时,循环结束。此时 left 即为目标值的插入位置(若不存在)或目标值的位置(若存在)。

为什么返回 left

  • 存在目标值:在循环中会不断调整指针,最终 mid 命中目标值,循环结束时 left 即为目标值的位置。

  • 不存在目标值:循环结束时,left 指向第一个大于 target 的元素的位置,或数组末尾之后的位置(即所有元素均小于 target 时)。

示例分析(示例2):

  • nums = [1,3,5,6], target = 2

  • 初始:left=0right=3 → mid=1nums[1]=3 > 2 → right=0

  • 下一轮:left=0right=0 → mid=0nums[0]=1 < 2 → left=1

  • 循环结束,返回 left=1(即插入位置)。

代码实现

class Solution {public int searchInsert(int[] nums, int target) {int left = 0;int right = nums.length - 1;while (left <= right) {int mid = left + (right - left) / 2; // 防止溢出if (nums[mid] < target) {left = mid + 1; // 目标在右半部分} else {right = mid - 1; // 目标在左半部分或mid处}}return left; // left即为插入位置}
}

复杂度分析

  • 时间复杂度O(log n)。每次循环将搜索范围减半,最多执行 log n 次循环。

  • 空间复杂度O(1)。仅使用常数级别的额外空间。

总结

通过二分查找的变体,我们巧妙地利用指针调整策略,最终返回 left 的值作为目标值的插入位置。该算法高效且简洁,完美满足了题目的所有要求。理解这一过程的关键在于明确循环结束时 left 指针的意义,即第一个大于等于目标值的位置。

http://www.yayakq.cn/news/303183/

相关文章:

  • 天津平台网站建设制作seo 优化
  • 网页设计模板html代码素材seo顾问服务 品达优化
  • 论企业网站职能建设wordpress友情链接代码
  • 盐城建设公司网站wordpress会员功能主题
  • 网站开发前端网站导航设计应注意哪些问题
  • 转业做网站的工具招代理网站建设公司
  • 诚信通网站怎么做外链国内好的网站建设
  • 网站制作用的软件苏州做网站公司电话
  • 灰色网站怎么做seo网站建设人员性格特点
  • 2021手机能看的网站寻找做网站的合作伙伴北京
  • 网站制作公司属于广告发布者吗电子上网站建设与维护
  • 泉州北京网站建设网页设计计划怎么写
  • 防疫站24小时在线咨询中国建设网官方网站狗年纪念币
  • 网站建设类的职位成都住房和城乡建设厅官网
  • 静安网站建设公司阿里云建站保证销售额
  • wordpress修改站标在哪个文件新开元电销系统
  • 深圳做网站专业wordpress缩略图配置
  • 企业自适应网站制作江西省外省建设入库网站
  • 后端开发技术有哪些seo网站优化工具大全
  • 网站开发 浏览器兼容性做网站多少费用
  • 用户研究 网站网站选服务器文件
  • 网站开发研究方法企业营销型企业网站建设
  • 南昌市建设工程质量监督站网站如何优化
  • 青州做网站电话wordpress招聘插件
  • 网站切图烟台网站公司
  • 融安有那几个网站做的比较好的无极网站建设质量
  • 如何做关于旅游的网站页面在线代理浏览网址
  • 百度商桥网站代码去哪里添加icp备案网站名称是什么意思
  • 房产网站建设东莞规划局官方网站
  • 上海网页制作服务公司重庆seo全网营销