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

生意网聊城seo优化

生意网,聊城seo优化,优化系统的软件,报喜鸟集团有限公司网页制作题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2 …

题目描述

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 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),其中 n 是数组的长度。所以可实现一个二分查找算法,用于在排序数组中查找一个目标值,并返回目标值的索引或者它应该被插入的位置。

代码

/*** @param {number[]} nums* @param {number} target* @return {number}*/
var searchInsert = function(nums, target) {let left = 0, right = nums.length - 1; // 闭区间 [left, right]while (left <= right) { // 区间不为空// 循环不变量:// nums[left-1] < target// nums[right+1] >= targetconst mid = Math.floor((left + right) / 2);if (nums[mid] < target) {left = mid + 1; // 范围缩小到 [mid+1, right]} else {right = mid - 1; // 范围缩小到 [left, mid-1]}}return left;
}

代码分析

  1. 初始化两个指针 leftright,分别指向数组的起始和结束位置,形成一个闭区间 [left, right]

  2. 进入一个 while 循环,条件是 left 小于等于 right,即区间不为空。

  3. 在循环内部,计算中间位置 mid,使用 Math.floor((left + right) / 2) 来确保 mid 是一个整数。

  4. 比较 nums[mid]target 的值:

    • 如果 nums[mid] 小于 target,则说明 target 可能在 mid 的右侧,因此更新 leftmid + 1,这样新的搜索区间就变成了 [mid + 1, right]
    • 如果 nums[mid] 大于或等于 target,则说明 target 可能在 mid 的左侧或 mid 本身,因此更新 rightmid - 1,这样新的搜索区间就变成了 [left, mid - 1]
  5. while 循环结束时,left 指针将指向 target 应该被插入的位置。如果 target 在数组中存在,left 将指向 target 的索引;如果 target 不存在,left 将指向 target 应该被插入的位置,以保持数组的排序。

  6. 最后,函数返回 left 作为结果。

这个算法的关键在于,每次迭代都会将搜索区间减半,这是通过比较中间元素和目标值来实现的。如果目标值在数组中,算法最终会找到它;如果目标值不在数组中,算法会找到目标值应该被插入的位置,以保持数组的排序。

这里可以自行走一遍示例,因为最后返回的是left,而判断最后是因为right减少导致循环结束,所以得到正确结果

http://www.ds6.com.cn/news/33173.html

相关文章:

  • asp 女性 美容 知识 网站 源码网站建设的整体流程有哪些
  • 网站建设实训课百度小程序关键词优化
  • 企业网站的缺点湖南专业seo推广
  • 免费网站客服工具营销型网站策划
  • 网站建设成本图超级外链吧
  • 设计之家官方网站域名权重是什么意思
  • 响应式布局实现搜索引擎优化是做什么的
  • 自己建网站做外贸微信软文范例
  • 网站建设 inurl:.bbs中国网站排名前100
  • 阜宁县住房与城乡建设局网站外链
  • 网站建设服务 杭州百度站长工具
  • 做网站会用到什么语言网络关键词
  • 自己做个网站好还是做别人会员好南通seo
  • 免费自助创建网站百度账号登录入口网页版
  • 会计专业简历制作深圳seo顾问
  • 电影下载网站模板seo推广培训课程
  • 网站怎么不花钱做排名 知乎网页制作成品
  • 济南 网站建设某企业网站的分析优化与推广
  • asp网站空间申请注册网站流程
  • 苏州那家公司做网站好十大流量平台
  • 上海的网站公安备案查询郑州seo网站管理
  • 艺客网站首页谷歌play商店
  • 什么网站可以免费做兼职磁力狗bt
  • 孝义网站开发公司宁波网站建设团队
  • 成人大专毕业自我鉴定页面seo是什么意思
  • 江苏网站备案流程图合肥网站seo整站优化
  • 电脑要登入国外的网站应该怎么做长春seo按天计费
  • 彩票网站链接怎么做醴陵网站制作
  • 建设局官网查询优化关键词的公司
  • 购物网站设计欣赏北京seo分析