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

潍坊市坊子区建设局网站青海论坛网站建设

潍坊市坊子区建设局网站,青海论坛网站建设,甘肃定西校园文化设计公司,网站服务器计算机安全的措施题目 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出:…

题目

  1. 搜索插入位置

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

请必须使用时间复杂度为 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

来源:力扣热题100 35. 搜索插入位置



纯代码

class Solution {
public:int searchInsert(vector<int>& nums, int target) {int n = nums.size(), l = 0, r = n - 1;if (nums[n - 1] < target) return n;while (l < r){int mid = l + r >> 1;if (nums[mid] >= target) r = mid;else l = mid + 1;}return r ;}
};

题解(加注释)

#include <vector>class Solution {
public:// 该函数用于在一个升序排序的整数数组 nums 中查找目标值 target 应该插入的位置// 如果 target 已经存在于数组中,返回其索引;如果不存在,返回它将会被插入的位置索引int searchInsert(std::vector<int>& nums, int target) {// 获取数组 nums 的长度int n = nums.size();// 初始化二分查找的左边界,从数组的第一个元素开始int l = 0;// 初始化二分查找的右边界,到数组的最后一个元素int r = n - 1;// 先进行一个边界检查,如果数组的最后一个元素都小于目标值 target// 说明 target 应该插入到数组的末尾,直接返回数组的长度 nif (nums[n - 1] < target) return n;// 开始二分查找过程,只要左边界 l 小于右边界 r,就继续循环while (l < r) {// 计算中间位置的索引,使用位运算 l + r >> 1 等同于 (l + r) / 2// 这样做是为了避免在 l 和 r 都很大时,(l + r) 可能会导致整数溢出int mid = l + r >> 1;// 如果中间位置的元素 nums[mid] 大于或等于目标值 target// 说明目标值可能在左半部分或者就是中间位置,更新右边界为 midif (nums[mid] >= target) {r = mid;} // 否则,即中间位置的元素 nums[mid] 小于目标值 target// 说明目标值在右半部分,更新左边界为 mid + 1else {l = mid + 1;}}// 当循环结束时,l 和 r 相等,此时这个位置就是目标值应该插入的位置// 或者是目标值在数组中存在的位置,返回该位置索引return r;}
};
http://www.dtcms.com/wzjs/547922.html

相关文章:

  • paypal客户端网站建设评价wordpress qq悬浮窗
  • 宁波网站关键词排名推广高德是外国公司吗?
  • 焦作电子商务网站建设实例seo外链推广员
  • 做淘宝需要知道什么网站深圳宝安区医院
  • 螺旋钢管网站建设网站制作类软件推荐
  • 建网站用html电子商务网站的建设与规划书
  • 哪个网站做螺丝生意好企业网页制作公司
  • 前端ui设计是什么广州seo外包
  • 做企业网站宁波企业建站程序
  • 淘宝上做网站可信吗北京网站设计公司排行榜
  • 建立手机也可浏览的网站教程网站自助建站系统
  • Wordpress 报表的插件全能优化大师
  • html网站列表怎么做德州建设公司网站
  • 网站建设责任分解现在什么语言做网站最好
  • 海报设计网站免费微信网站开发怎么做
  • 申请域名之后如何做网站石家庄网站建设咨询薇
  • 重庆市建筑工程信息官方网站网站建设代理成本
  • 网站pc和手机端怎么验证网站
  • 如何用织梦做网站详细教程微网站 获取手机号
  • 大型网站维护费一年多少单一产品网站如何做seo
  • 西部数码 网站管理手机端官网设计
  • 专业建站模板做网站样式模板
  • 网站菜单素材广告联盟接广告
  • 网站根域名是什么网站开发工具
  • 东莞长安网站设计公司wordpress搬运小红书内容
  • 一级a做爰片 A视频网站做网站的公司济南赛博科技市场
  • 海外转运网站建设资讯wordpress主题
  • 衡阳电商网站建设注册个公司要多少钱
  • 网页模板网站都有什么作用天河区发布
  • 中国制造网注册网站免费注册全国企业信用信息公示系统浙江