【刷题记录】35. 搜索插入位置

简介: 【刷题记录】35. 搜索插入位置

一、题目描述


来源:力扣(LeetCode)


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


请必须使用时间复杂度为

网络异常,图片无法展示
|
的算法。




示例 1:


输入: nums = [1,3,5,6], target = 5

输出: 2


示例 2:


输入: nums = [1,3,5,6], target = 2

输出: 1


示例 3:


输入: nums = [1,3,5,6], target = 7

输出: 4


提示:


  • 1 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • nums 为 无重复元素 的 升序 排列数组
  • -104 <= target <= 104


二丶思路分析


二分查找


这道如果该题目暴力解决的话需要

网络异常,图片无法展示
|
的时间复杂度,但是题目要求
网络异常,图片无法展示
|
 所以我们使用 二分查找来实现
查找过程中


  • 每次根据 nums[mid] 和 target 之间的大小进行判断
  • 相等则直接返回下标
  • nums[mid] < target , left 右移
  • nums[mid] > target , right 左移
  • 查找结束如果没有相等值则返回 left,该值为插入位置


三、代码实现

class Solution {
    public int searchInsert(int[] nums, int target) {
        int length = nums.length;
        int left =0, right = length -1;
        int res = length;
while (left <= right) {
            int mid = ((right - left) >> 1) + left;
if (target <= nums[mid]) {
                res = mid;
                right = mid -1;
            } else {
                left = mid +1;
            }
        }
        return res;
    }
}

复杂度分析


时间复杂度:

网络异常,图片无法展示
|
, n 为数组的长度


空间复杂度:

网络异常,图片无法展示
|


运行结果


网络异常,图片无法展示
|


总结


这道题目就是一个二分查找的运用,比较简单。


对于二分查找这种模板算法,我们还是要熟练的掌握


继续加油~~

目录
相关文章
|
数据处理 Windows
Inertial Explorer v8.8航测pos解算软件安装教程
Inertial Explorer v8.8航测pos解算软件安装教程
2948 1
|
存储 人工智能 缓存
【AI系统】Ascend C 语法扩展
Ascend C 是基于标准 C++ 扩展的编程语言,专为华为昇腾处理器设计。本文介绍了 Ascend C 的基础语法扩展、API(基础与高阶)、关键编程对象(数据存储、任务间通信与同步、资源管理及临时变量),以及如何利用这些特性高效开发。通过华为自研的毕昇编译器,Ascend C 实现了主机与设备侧的独立执行能力,支持不同地址空间的访问。API 包括计算、数据搬运、内存管理和任务同步等功能,旨在帮助开发者构建高性能的 AI 应用。
391 2
【AI系统】Ascend C 语法扩展
|
10月前
|
存储 安全 Linux
NFS使用TrueNAS SCALE的好处
从Linux自带的NFS转向TrueNAS SCALE,因其不仅提供块服务(iSCSI),还内置压缩功能。通过WEB界面开启SSH并设置Allow Password Authentication。安全配置方面,限制特定IP访问NFS输出。对比发现,对于文本文件,TrueNAS SCALE展现出显著的压缩优势,如日志文件压缩率接近90%,大大节省了存储空间,而对已压缩文件则无明显变化。这一转变有效优化了存储效率和安全性。
331 0
|
存储 人工智能 弹性计算
阿里云何川:云计算,为数据基础设施的建设提速|数据对话
中国信通院工业互联网与物联网研究所特别策划“数据对话”专题,旨在通过专家的深度分析和独特视角,回答社会关切话题,探讨前沿技术和应用趋势。
|
CDN 容器
如何在Three.js中创建三维场景
【8月更文挑战第21天】如何在Three.js中创建三维场景
487 2
|
前端开发 小程序
微信小程序中wxss和css的差异
微信小程序中wxss和css的差异
|
存储 Web App开发 安全
【BP靶场portswigger-客户端12】跨站点请求伪造CSRF-12个实验(全)(上)
【BP靶场portswigger-客户端12】跨站点请求伪造CSRF-12个实验(全)(上)
1559 1
【BP靶场portswigger-客户端12】跨站点请求伪造CSRF-12个实验(全)(上)
|
编解码 调度 UED
Flutter笔记:Flutter的WidgetsBinding.instance的window属性
Flutter笔记:Flutter的WidgetsBinding.instance的window属性
607 0
|
存储 运维 负载均衡
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(中)-最佳实践(2)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(中)-最佳实践(2)
299 0