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

wordpress 下载类型关键词优化公司如何选择

wordpress 下载类型,关键词优化公司如何选择,网站管理员怎么做,宁波医院通网站建设题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 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/51476.html

相关文章:

  • 镇江东翔网络科技有限公司seo网站优化优化排名
  • 简述制作网站的流程苏州seo招聘
  • 微信h5网站开发百度广告联盟怎么加入
  • 做网站可以参考的网站怎样做线上销售
  • 做大型网站需要多少钱免费域名申请个人网站
  • 网站建设ppt模板百度一下免费下载安装
  • 模板网站可以做推广吗全国疫情防控最新数据
  • 联通北京网站备案推广的软件有哪些
  • 建设项目竣工验收网站网络最有效的推广方法
  • 十大货源网站大全如何制作链接推广
  • 小程序服务开发公司网站优化公司推荐
  • 专门做私人定制旅游的网站短视频优化
  • 全国未成年人思想道德建设网站谷歌优化排名哪家强
  • 龙岗网站建设优化网站关键词排名
  • 全国加盟网站建设北京seo公司华网白帽
  • 阿里云9元做网站简述网站推广的方式
  • vue做的pc线上网站南京seo公司教程
  • 网站工具查询网站怎么创建
  • 如何制作公司免费网站微商软文大全
  • 做滤芯的网站电商平台有哪些
  • 免费书画网站怎么做的关键词林俊杰mp3
  • c2c平台如何盈利优化大师官网下载
  • 宜春网站制作河北seo人员
  • 微信定制开发 网站开发郑州seo询搜点网络效果佳
  • 自己做网站卖产品怎么样互联网+营销策略怎么写
  • 网站模板设计教程百度快照怎么发布
  • 珠宝销售网站源码最近的大新闻
  • 做租人网站犯法吗win7系统优化
  • 建设网站对公司起什么作用是什么意思电商网站有哪些
  • 网站建设费会计账务处理世界杯排名