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

网站建设公司营销推广凡科网站怎么做

网站建设公司营销推广,凡科网站怎么做,阿里指数官方网站,问题谁负责题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 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.yayakq.cn/news/308448/

相关文章:

  • jsp 网站连接数据库沈阳网站建设搜q479185700
  • 电商网站怎么做seo优化汶上网站建设哪家便宜
  • 网站建设的产品类型是什么logo制作app
  • 哪个网站可兼职做logo山西通州集团网站建设
  • 响应式网站有什么区别新手学做网站电子版
  • 网页建站软件哪个网站可以做app界面
  • 安康网站建设智能小程序废物利用手工制作图片
  • 网站开发的风险与风险管理wordpress 评论 重复
  • 2018做网站还赚钱吗做网站需学什么条件
  • 郑州建设工程协会网站湖北网站建设免费
  • 成都学校网站制作如何开发自己的app
  • 云南网站定制开发什么网站可以发布广告
  • nas 建网站网站推广平台代理
  • 建设网站有哪些好处和坏处中小公司做网站
  • 学做美食视频网站有哪些西宁网站建设费用
  • 合肥网红打卡地洛阳做网站优化
  • 百度云网站建设教程视频教程网络广告的特点有哪些?
  • 黄金网站app软件下载安装免费网页传奇服务端
  • 沈阳网站建设哪里的公司比较好如何进行企业营销型网站建设
  • 怎样给自己做网站无锡 网站 seo 优化
  • wordpress 请选择一个文件夹seo服务加盟
  • 贵州省建设厅省外企业官方网站win7优化教程
  • 什么网站可以做护考题广西建网站
  • 西宁网站制作费用是多少钱做网站接电话一般要会什么
  • 亚马逊网站建设历程能翻到国外的浏览器
  • dedecms做地方网站wordpress账号密码数据库
  • 产品摄影网站软文推广做的比较好的推广平台
  • 怎么自己开发网站中国纪检监察报杂志
  • 网站建设 不违背深圳企业网站建设标准
  • 对php网站开发的认识小说网站建站程序