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

静态网站可以做哪些设计官网需要留言吗

静态网站可以做哪些,设计官网需要留言吗,wordpress 邮件发布,电子商务网站开发过程论文6问题描述 给定一个已排序的整数数组 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/568649/

相关文章:

  • 开发软件和做网站的区别自建网站的优缺点
  • 互联网建网站asp最新版本
  • 玉林英文网站建设网站诊断分析案例
  • ps网站制作教程购物商城app
  • 浙江省建设监理协会网站国内环保行业网站开发
  • 国外以紫色为背景的网站深圳网站建设服务哪家好
  • 自己建设公司网站免费文档模板网站
  • 怎么描述网站seo薪酬水平
  • 国土资源局网站建设制度低成本做网站 白之家
  • 做标书有什么好的网站吗湖南衡五建设公司网站
  • 主流数据网站注册商标查询是否已被注册
  • 网站建设及政务公开工作不备案怎么做淘宝客网站吗
  • 怎样建立一个自己的网站包头外贸网站建设
  • 网站绝对路径301大学毕业做网站插画师好吗
  • h5网站建设 案例繁峙做网站建设
  • 网站免费认证联盟做网站开始要注意什么
  • 做网站是用什么语言图片上传 网站建设教学视频
  • 有什么网站可以免费搭建网址鹤壁北京网站建设
  • 网站后台管理模块佛山网站优化步骤
  • 沈阳便宜做网站的求个网站你知道的
  • 推荐网站建设服务商公司高管培训课程
  • 建设手机移动网站wordpress网页教程百度云
  • 上海浦东建设管理有限公司网站有没有个人做网站的
  • 长沙网站设计流程河南省新闻出版学校
  • 番禺区建设网站南通做网站优化哪家好
  • 设计广告公司网站建设原材料价格查询网站
  • 教做粥的网站市中移动网站建设
  • 康保网站建设网站备案证书下载
  • 购物平台网站建设框架建设银行查询余额进什么网站
  • 西峡县住房和城乡建设局网站深圳网站提升排名