leetcode第三十五题 搜索插入位置(Java)——二分查找
题目如下:
给出的输出示例如下:
根据题意必须要使用时间复杂度为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)——二分查找相关推荐
- 第五章第三十五题(加法)(Summation)
第五章第三十五题(加法)(Summation) *5.35(加法)编写程序,计算下面的和. *5.35(Summation) Write a program to compute the follow ...
- LeetCode 35. 搜索插入位置(二分查找)
文章目录 1. 题目信息 2. 解题 2.1 暴力遍历 2.2 二分查找 1. 题目信息 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插 ...
- 【leetcode 简单】 第三十五题 环形链表
给定一个链表,判断链表中是否有环. 进阶: 你能否不使用额外空间解决此题? /*** Definition for singly-linked list.* struct ListNode {* in ...
- 【leetcode 简单】第十一题 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...
- 《剑指offer》第三十五题(复杂链表的复制)
// 面试题35:复杂链表的复制 // 题目:请实现函数ComplexListNode* Clone(ComplexListNode* pHead),复 // 制一个复杂链表.在复杂链表中,每个结点除 ...
- 35. 搜索插入位置011(二分查找)
一:题目: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 请必须使用时间复杂度为 O(log n) 的算法. 示例 1: 输 ...
- LeetCode35. 搜索插入位置(二分查找)
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 思路 详见链接 代码 class So ...
- 力扣第十五题-三数之和
前言 力扣第十五题 三数之和 如下所示: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复 ...
- 第五章第三十八题(十进制转换八进制)(Decimal to octal)
第五章第三十八题(十进制转换八进制)(Decimal to octal) **5.38(十进制转换为八进制)编写程序,提示用户输入一个十进制整数,然后显示对应的八进制值.在这个程序中不要使用Java的 ...
最新文章
- 《C#高级编程》 读书心得1--核心C# 几点你可能没注意,但很基础的小东西。
- java 日期注解 xml_Spring xml注解+java注解
- VS2015+OpenCV2.4.13环境搭建详细步骤及自带示例编译运行
- Python之深入解析Python技能树的测评分析
- iOS9 Storyboard unwind segue反回传递事件时机详细步骤
- Spark在文本统计中的简单应用
- PHP编译configure时常见错误(转)
- canvas需要gpu_【前端冷知识】你了解Canvas的渲染上下文吗?
- router阻止telnet自身的两种方法
- thinkphp 助手函数url不生成https_关于ThinkPHP的一些渗透方式
- [ATL/WTL]_[Gdiplus]_[关于使用Gdiplus来绘制反锯齿的圆角矩形]
- 前端安全问题的解决方法
- LeetCode刷题之1818. 绝对差值和
- 如何有效投诉中国电信、中国联通、中国移动?
- 【arXiv 2021】Cluster Contrast for Unsupervised Person Re-Identification(CCU)
- 科技论文中字母正斜体及大小写的规范写法
- 车载网络测试 - 车载以太网 - ARP详细解析
- C/C++中的日期和时间
- DexExpress的mapcontrol根据经纬度在地图上打点 C#地图画点 地图标点
- png转svg格式并上传至iconfont