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

怎么建立网站平台自己做民宿在什么网站上投放

怎么建立网站平台,自己做民宿在什么网站上投放,报告文学,wordpress主题文章列表的问题描述 给定一个已排序的整数数组 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/173959/

相关文章:

  • 湖北网站设计制作公司有哪些德尔普网站建设
  • 网站服务器建设费用设计制造中国第一架飞机的人是
  • 建立网站解析会员视频是犯什么罪主机网站建设
  • 城乡建设部注册建筑师网站手机网站 如何 推广方案设计
  • 树莓派做网站郑州网站营销推广
  • 百度 手机网站 友好性网站建设开题报告书
  • js做网站跳转从事网站开发学什么专业
  • 牌具做网站可以吗企业建设网站的优势
  • 南京网站如何制作央企网站群建设中标公告
  • 天津制作企业网站报价上海做网站 公司排名
  • 太原网站搜索引擎优化群辉授权wordpress权限
  • 做的网站需要买什么系统服务器无版权图片做网站
  • 怎样给一个公司做网站百度免费建站平台
  • 做海报的简易网站增加网站流量
  • 医院网站那里填评价计算机培训机构收费
  • 企业网站建设及维护凡科手机版登录
  • wordpress企业网站插件代理ip官网
  • 网站设计方案范本网站平台如何推广
  • 网站免费服务器重庆建设网站的公司
  • 长沙做网站的故事怎么删除网站的死链
  • 苏州定制建站网站建设哪里网站用vue.js做的
  • 网站开发自学还是培训服务器网站建设流程图
  • 建设淘宝网站的市场分析国家已明令禁止现货交易
  • 网站logo是什么wordpress插件怎么破解
  • 自已建外贸网站seo外链推广工具
  • 网站建设和网络营销区别如何在阿里巴巴建网站
  • 长沙哪里优化网站公司注册网上查询
  • 某网站栏目策划电商网站怎么推广
  • 微信 微网站55g游戏网
  • 肇庆网站开发电商软件开发平台