Leecode35.搜索插入位置

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

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

示例 4:

输入: nums = [1,3,5,6], target = 0
输出: 0

示例 5:

输入: nums = [1], target = 0
输出: 0

提示:

  • 1 <= nums.length <= 104
  • 104 <= nums[i] <= 104
  • nums 为无重复元素的升序排列数组
  • 104 <= target <= 104

算法代码:

    public static int searchInsert(int[] nums, int target) {/** 算法思想:*           因为数组有序,且时间复杂度规定为O(logN),采用二分法*           若存在,找到目标值,*           若不存在,找到目标值应该插入的位置* *///左闭右闭写法int left = 0, right = nums.length - 1;while (left <= right) {//防止溢出int mid = left + ((right - left) >> 1);if (target > nums[mid]) {left = mid + 1;} else if (target < nums[mid]) {right = mid - 1;} else {return mid;}}//据模拟,插入位置为leftreturn left;}

时间复杂度:O(logN)
空间复杂度:O(1)

习题链接

点我跳转题目

Bia布刷题日记2022/2/15相关推荐

  1. Bia布刷题日记 2022/2/16

    Leecode34. 在排序数组中查找元素的第一个和最后一个位置 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 如果数组中不存在目 ...

  2. Bia布刷题日记2022/2/17

    Leecode 26. 删除有序数组中的重复项 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度.元素的 相对顺序 应该保持 一 ...

  3. Bia布刷题日记 LC-1

    题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中 ...

  4. Bia布刷题日记 LC-15 三数之和

    Leecode 540 有序数组中的单一元素 算法描述: 540.有序数组中的单一元素给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次. 请你找出并返回只出现一次的那个 ...

  5. 一个算法笨蛋的12月leetCode刷题日记

    类似文章 一个算法笨蛋的2021年11月leetCode刷题日记 一个算法笨蛋的2021年12月leetCode刷题日记 一个算法笨蛋的2022年1月leetCode刷题日记 一个算法笨蛋的2022年 ...

  6. 菜菜的刷题日记 | 66.加一 Plus One

    系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/7 文章目录 [题目] [我的代码] [参考代码1] [参考代码2] [参考代码3] [思 ...

  7. 菜菜的刷题日记 | 12.整数转罗马数字

    系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/24,这几天忙着肝并发编程,题在做但是没空写题解,今晚补一篇. 文章目录 [题目] [官方 ...

  8. 牛客刷题日记(2021-12-8)

    牛客刷题日记(2021-12-8) 题目: 以下哪个接口的定义是正确的?( )interface B { void print() { } ;}interface B { static void pr ...

  9. 刷题日记【第十三篇】-笔试必刷题【数根+星际密码+跳台阶扩展问题+快到碗里来】

    刷题日记[第十三篇]-笔试必刷题[数根+星际密码+跳台阶扩展问题+快到碗里来] 1.方法区在JVM中也是一个非常重要的区域,它与堆一样,是被[线程共享]的区域. 下面有关JVM内存,说法错误的是?(c ...

最新文章

  1. mnist数据集保存为图片
  2. 父窗口控制弹出窗口快捷键ctrl+c关闭
  3. 面试常问 Java基础 冒泡排序
  4. kali桥接模式无法上网_听没听过用手机接路由器上网?
  5. struts mysql 增删改查_struts2增删改查
  6. 打破PermGen神话
  7. spring security method security
  8. c语言 函数指针开销,函数指针是否使程序变慢?
  9. 【渝粤教育】国家开放大学2018年春季 0239-21T电子商务物流管理 参考试题
  10. 新建xml模板_库卡机器人之OrangeEdit加模板
  11. xmanager 远程连接REDHAT 4 桌面
  12. 教你写一个弹幕库,确定不了解一下?
  13. 世界地图中国地图高清版
  14. 微弱光信号检测MATLAB,基于数字锁相放大器的微弱光电信号检测研究
  15. Linux XFS文件系统修复
  16. 用 C#.NET 编写的一个完整字谜游戏
  17. mysql 根据英文首字母来查询汉字
  18. 关于阿里云服务器安全组规则
  19. <a>标签 禁止点击 button禁止点击
  20. 把html页面转换为pdf

热门文章

  1. linux设备编号,linux设备号详解
  2. 聚美优品正式退市:陈欧下一个将为谁代言?
  3. 有写字好看的人给点实用性技巧吗?
  4. 解决 el-checkbox-group 值为对象的时候 复选框回显问题
  5. jquery复选框选中及下拉框选中指定项(删除项)
  6. git 免费开源平台推荐 4+7 个
  7. 用ServletContext做一个简单的聊天室
  8. 【解决问题】笔记本换硬盘 BIOS 不能识别
  9. 机器学习 逻辑回归算法应用案例
  10. 818,你所不了解的EGF重组人表皮生长因子