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

你可以假设数组中无重复元素。

思路:二分查找

public class Solution {public int searchInsert(int[] nums, int target) {int len = nums.length;if (nums[len - 1] < target) {return len;}int left = 0;int right = len - 1;while (left <= right) {int mid = (left + right) / 2;// 等于的情况最简单,我们应该放在第 1 个分支进行判断if (nums[mid] == target) {return mid;} else if (nums[mid] < target) {// 题目要我们返回大于或者等于目标值的第 1 个数的索引// 此时 mid 一定不是所求的左边界,// 此时左边界更新为 mid + 1left = mid + 1;} else {// 既然不会等于,此时 nums[mid] > target// mid 也一定不是所求的右边界// 此时右边界更新为 mid - 1right = mid - 1;}}// 注意:一定得返回左边界 left,// 如果返回右边界 right 提交代码不会通过// 【注意】下面我尝试说明一下理由,如果你不太理解下面我说的,那是我表达的问题// 但我建议你不要纠结这个问题,因为我将要介绍的二分查找法模板,可以避免对返回 left 和 right 的讨论// 理由是对于 [1,3,5,6],target = 2,返回大于等于 target 的第 1 个数的索引,此时应该返回 1// 在上面的 while (left <= right) 退出循环以后,right < left,right = 0 ,left = 1// 根据题意应该返回 left,// 如果题目要求你返回小于等于 target 的所有数里最大的那个索引值,应该返回 rightreturn left;}
}

leetcode35 插入的位置相关推荐

  1. 算法:搜索插入的位置

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中, // 返回它将会被按顺序插入的位置.你可以假设数组中无重复元素. 例:[1,3,5,6], 5 返回2 fu ...

  2. quill光标位置插入html,quill编辑器+word文档上传,插入指定位置

    官方quill没有直接给出插入html的方式 类似,下面两个方法,是quill框架提供的,但是并没有提供可以在指定光标位置插入html quill.pasteHTML:这个方法已经废弃了,但目前还是可 ...

  3. excel2019单元格插入图片位置大小随单元格变化

    描述:excel2019单元格插入图片位置大小随单元格变化 步骤: 复制图片到Excel2019单元格 调整图片到合适大小 双击图片,菜单栏会出现 图片工具格式 找到对齐,选择对齐网格 将图片对齐单元 ...

  4. php数组指定位置后加,PHP 数组合并、增加元素、插入指定位置

    1,合并 $array1 = array("color" => "red", 2, 4); $array2 = array("a", ...

  5. 【指针编程】 编写一个函数,利用指针在字符串s中的指定位置pos处(这里插入的位置是从1开始,不是下标。)插入字符串。插入的位置和内容是从键盘输入

    [问题描述] 编写一个函数,利用指针在字符串s中的指定位置pos处(这里插入的位置是从1开始,不是下标)插入字符串.插入的位置和内容是从键盘输入 要求:子函数 void InsertStr(char ...

  6. 【LeetCode】- Search Insert Position(查找插入的位置)

    [ 问题: ] Given a sorted array and a target value, return the index if the target is found. If not, re ...

  7. JS字符串截取方法 JS字符串查找指定字符方法 JS字符串替换指定字符方法 JS字符串插入指定位置方法 JS字符串删除指定字符方法

    js字符串截取的方法 方法一: str.slice(开始位置,结束位置) //start 参数字符串中第一个字符位置为 0, 第二个字符位置为 1, 以此类推,如果是负数表示从尾部截取多少个字符串,s ...

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

    给定排序数组和目标值,如果找到目标,则返回索引. 如果没有,请返回索引按顺序插入的索引. 您可以假设数组中没有重复项. Example 1: Input: [1,3,5,6], 5 Output: 2 ...

  9. latex表插入的位置不对_VSCode_LaTex_英文amp;中文配置

    I. VSCode+Latex安装 VSCode+Git安装 lonelybag:vscode_git_github 配置教程​zhuanlan.zhihu.com Latex安装 踏歌:编写中文La ...

最新文章

  1. 盘点互联网巨头奉献的十大开源安全工具
  2. Hyperledger Fabric 交易流程
  3. python新闻管理系统_python项目——新闻管理系统
  4. Eclipse中单元测试
  5. 如何让计算机两个用户使用不同步,如何实现两台或多台电脑远程修改文件同步更新?...
  6. Algs4-1.4.14 4-sum
  7. 同一个SQL语句,为啥性能差异咋就这么大呢?
  8. 关于 Linux 的配置文件 /etc/profile 路径出错后相关的命令失效解决方式(如:ls,vi不能用)...
  9. Git图形化操作:Revert(恢复)本地的修改到上一个版本
  10. LAMP兄弟连的兄弟们都该看看!(绝非欺骗)
  11. 微信小程序获取服务器当前时间,微信小程序服务器日期格式化问题
  12. bat运行Java程序
  13. u 盘安装linux系统,CentOS 7 系统安装之 U 盘安装法
  14. FF300R08W2P2B11A 汽车用EasyPACK 模块 2 个独立式
  15. 微信小程序语音转文字demo
  16. 查询至少具有两份工作员工的姓名和其公司名
  17. vlog常用参数解析
  18. Android Studio卡在Building 'xxx' Gradle project info的解决办法
  19. IPv4地址的分配原理
  20. FileCounter文件统计小工具

热门文章

  1. 移除集合效率高还是add高_List、set集合接口分析
  2. Linux编程练习 --多线程1--线程创建
  3. 【转】图形流水线中坐标变换详解:模型矩阵、视角矩阵、投影矩阵
  4. 【转】[WSL2]WSL2迁移虚拟磁盘文件ext4.vhdx
  5. 【转】WPF中关于样式和模板的区别
  6. 【转】GitHub 从单机到联机:玩转 Pull Request
  7. 【转】C# 命名空间 Namespace (学习心得 23)
  8. windows程序消息机制(Winform界面更新有关)
  9. C#多线程之旅(2)——详解线程的开始和创建
  10. 35解释器模式(Interpreter Pattern)