当前位置:网站首页>力扣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又放大招,剑指整个生物界!

智能手表前景如何?

中原银行实时风控体系建设实践

【Acunetix-Forgot your password】

Camera Hal OEM模块 ---- cmr_snapshot.c

Deep Learning 100 Examples - Convolutional Neural Network (CNN) for mnist handwritten digit recognition

Pytorch 占用cpu资源过多
[email protected] This version of tar is no longer supported, and will not receive"/>npm WARN deprecated [email protected] This version of tar is no longer supported, and will not receive

企业级数据治理工作怎么开展?Datahub这样做

QT笔记——QT类反射机制简单学习
随机推荐
X86函数调用模型分析
使用kubesphere图形界面创建一个devops的CI/CD流程
Create your own app applet ecosystem with applet containers
yolo格式(txt)数据集转VOC(xml)
Getting Started with Three.JS Programmatic Modeling
【Acunetix-忘记密码】
AQS-AbstractQueuedSynchronizer
运行yum报错Error: Cannot retrieve metalink for reposit
元宇宙“吹鼓手”Unity:疯狂扩局,悬念犹存
SQL function TRIM
ansible module --copy module
流动性质押挖矿系统开发如何制作?单双币系统开发成熟技术
Crack detection technology based on deep learning
AdguardHome如何配置设置?我的AdguardHome配置内容过滤器拦截列表
基于深度学习的裂缝检测技术
SQL function $TRANSLATE
Excel dynamic chart production
Challenge LeetCode1000 questions in 365 days - Day 047 Design Circular Queue Circular Queue
C#/VB.NET to add more lines more columns image watermark into the Word document
小程序插件让开发者受益的几个理由