当前位置:网站首页>力扣35-搜索插入位置——二分查找
力扣35-搜索插入位置——二分查找
2022-08-02 11:41:00 【张怼怼√】
题目描述
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。
解题思路
- 这也是一道查找元素的题目,题目要求是在有序数组查找元素并返回索引;
- 如果元素不在数组中应该返回他本应该的索引位置;

- 那么目标值有可能就有四种情况:①比第一个元素还小,放在数组最前面;②比最后一个元素大,插在数组尾部;③等于数组中某个值,返回索引;④在数组中未找到这个值,找合适的位置将其插入
- 可以想到这种题目应该要用二分法求解;
- 在开始判断target与数组首末元素的大小关系,并返回正确的索引;
- 在查找过程中采用左右闭合的区间 [ left , right ];
- 只是在判断完所有的情况时,不应该返回-1,应该返回 right+1,因为 right+1 是此时要插入位置的索引。
输入输出示例

代码
class Solution {
public int searchInsert(int[] nums, int target) {
int n = nums.length;
int left = 0, right = n-1;
//boolean flag = false;
if(target < nums[0]){
return 0;
}else if(target > nums[n-1]){
return n;
}
while(left <= right){
int mid = left + ((right - left) >> 1);
if(target == nums[mid]){
//flag = true;
return mid;
}else if(target< nums[mid]){
//flag = true;
right = mid - 1;
}else if(target > nums[mid]){
//flag = true;
left = mid + 1;
}
}
return right+1;
}
}边栏推荐
- AlphaFold又放大招,剑指整个生物界!
- sva 断言资料
- Mysql transaction isolation level and MVCC (multi-version concurrency control)
- sqli-labs(less-11)
- 21 Days Learning Challenge - Day 1 Punch (Screen Density)
- 10份重磅报告 — 展望中国数字经济未来
- List排序 ,取最大值最小值
- ansible module --yum module
- When not to use () instead of Void in Swift
- ssm web page access database data error
猜你喜欢

What is the future of smartwatches?

npm run serve启动报错npm ERR Missing script “serve“

数字化转型中的低代码

面积曲线AUC(area under curve)

C#/VB.NET to add more lines more columns image watermark into the Word document

2022年8月初济南某外包公司全栈开发面试题整理

CCF论文会议 IEEE 如何查询某个会议期刊的所有文章

免费的中英文翻译软件-自动批量中英文翻译软件推荐大全

Hub and Spoke配置案例

使用kubesphere图形界面创建一个应用操作流程
随机推荐
【云驻共创】数据工坊平台,0代码开发数据处理业务“快”人一步
从幻核疑似裁撤看如何保证NFT的安全
小程序插件的生态丰富,加速开发建设效率
爆款视频怎么做?这里或许有答案!
记录代码
Mysql事务隔离级别与MVCC(多版本并发控制)
借小程序容器打造自有App小程序生态
SQL函数 $TRANSLATE
sva assertion data
STM32+MPU6050 Design Portable Mini Desktop Clock (Automatically Adjust Time Display Direction)
Jest 测试框架 beforeEach 的设计原理解析
ssm网页访问数据库数据报错
2022年8月初济南某外包公司全栈开发面试题整理
sqli-labs(less-11)
MP的几种查询方式
QT笔记——Q_PROPERTY了解
JSP中include指令的功能简介说明
【项目管理技术的优势】
jvmxmx和xms参数分析(设定优化校准)
List排序 ,取最大值最小值