题目如下:

给出的输出示例如下:

根据题意必须要使用时间复杂度为O(log n)的算法。而普通常用的暴力求解时间复杂度为

O(n),所以这里为了解决这道题使用二分查找的方法,而二分查找的时间复杂度恰好为O(log n)。

代码如下:

class Solution {public int searchInsert(int[] nums, int target) {int left=0;int right=nums.length-1;while(left<=right){             //注意边界条件不要出错,循环条件中的left和right的关系不要出错int mid=(left+right)/2;     if(nums[mid]==target){return mid;}else if(nums[mid]>target){ //还要注意更新left和right的新位置要不要加一减一right=mid-1;}else{left=mid+1;}}return left;        //如果没找到则返回该目标值要插入的位置}
}

整体思路和普通的二分查找几乎没有区别,先设定左侧下标 left 和右侧下标 right,再计算中间下标 mid
        每次根据 nums[mid] 和 target 之间的大小进行判断,相等则直接返回下标,nums[mid] < target 则 left 右移,nums[mid] > target 则 right 左移
        查找结束如果没有相等值则返回 left,该值为插入位置

leetcode第三十五题 搜索插入位置(Java)——二分查找相关推荐

  1. 第五章第三十五题(加法)(Summation)

    第五章第三十五题(加法)(Summation) *5.35(加法)编写程序,计算下面的和. *5.35(Summation) Write a program to compute the follow ...

  2. LeetCode 35. 搜索插入位置(二分查找)

    文章目录 1. 题目信息 2. 解题 2.1 暴力遍历 2.2 二分查找 1. 题目信息 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插 ...

  3. 【leetcode 简单】 第三十五题 环形链表

    给定一个链表,判断链表中是否有环. 进阶: 你能否不使用额外空间解决此题? /*** Definition for singly-linked list.* struct ListNode {* in ...

  4. 【leetcode 简单】第十一题 搜索插入位置

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

  5. 《剑指offer》第三十五题(复杂链表的复制)

    // 面试题35:复杂链表的复制 // 题目:请实现函数ComplexListNode* Clone(ComplexListNode* pHead),复 // 制一个复杂链表.在复杂链表中,每个结点除 ...

  6. 35. 搜索插入位置011(二分查找)

    一:题目: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 请必须使用时间复杂度为 O(log n) 的算法. 示例 1: 输 ...

  7. LeetCode35. 搜索插入位置(二分查找)

    题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 思路 详见链接 代码 class So ...

  8. 力扣第十五题-三数之和

    前言 力扣第十五题 三数之和 如下所示: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复 ...

  9. 第五章第三十八题(十进制转换八进制)(Decimal to octal)

    第五章第三十八题(十进制转换八进制)(Decimal to octal) **5.38(十进制转换为八进制)编写程序,提示用户输入一个十进制整数,然后显示对应的八进制值.在这个程序中不要使用Java的 ...

最新文章

  1. 《C#高级编程》 读书心得1--核心C# 几点你可能没注意,但很基础的小东西。
  2. java 日期注解 xml_Spring xml注解+java注解
  3. VS2015+OpenCV2.4.13环境搭建详细步骤及自带示例编译运行
  4. Python之深入解析Python技能树的测评分析
  5. iOS9 Storyboard unwind segue反回传递事件时机详细步骤
  6. Spark在文本统计中的简单应用
  7. PHP编译configure时常见错误(转)
  8. canvas需要gpu_【前端冷知识】你了解Canvas的渲染上下文吗?
  9. router阻止telnet自身的两种方法
  10. thinkphp 助手函数url不生成https_关于ThinkPHP的一些渗透方式
  11. [ATL/WTL]_[Gdiplus]_[关于使用Gdiplus来绘制反锯齿的圆角矩形]
  12. 前端安全问题的解决方法
  13. LeetCode刷题之1818. 绝对差值和
  14. 如何有效投诉中国电信、中国联通、中国移动?
  15. 【arXiv 2021】Cluster Contrast for Unsupervised Person Re-Identification(CCU)
  16. 科技论文中字母正斜体及大小写的规范写法
  17. 车载网络测试 - 车载以太网 - ARP详细解析
  18. C/C++中的日期和时间
  19. DexExpress的mapcontrol根据经纬度在地图上打点 C#地图画点 地图标点
  20. png转svg格式并上传至iconfont

热门文章

  1. 【分享】用友U8无需API开发连接表单系统、CRM系统、数据库等第三方应用
  2. goland 界面变成中文 修改回英文界面
  3. .NET CoreMVC添加登录过滤器
  4. 电池连接接触电阻的优化研究
  5. 如何修复mac电脑蓝牙不可用的问题
  6. 互相关函数的频域计算
  7. 电子科大计算机学硕考研分数线,2020电子科技大学考研学硕复试分数线
  8. AutoIt:常用操作
  9. 产教融合-校企合作运营经验总结
  10. 如何从红帽官方网站下载镜像文件