代码随想录——搜索插入位置(Leetcode35)

news2024/11/16 11:45:58

题目链接
在这里插入图片描述

class Solution {
    public int searchInsert(int[] nums, int target) {
        int len = nums.length;
        int left = 0;
        int right = len - 1;
        int index = -1;
        while(left <= len / 2){
            if(nums[left] == target || target < nums[left]){
                index = left;
                break;
            }else{
                left++;
            }
            if(nums[right] == target){
                index = right;
                break;
            }else if(target > nums[right]){
                index = right + 1;
                break;
            }else{
                right--;
            }
        }
        return index;
    }
}

采用二分查找可以顺利找到target存在于数组中的位置;
target不存在与数组中时需要对左右两侧分别考虑,由于数组下标从0开始且为有序数组,所以当target < nums[left]index = left,当target > nums[right]index = right + 1

官方题解

class Solution {
    public int searchInsert(int[] nums, int target) {
        int n = nums.length;
        int left = 0, right = n - 1, ans = n;
        while (left <= right) {
        	// 相当于int mid = (left + right) / 2
            int mid = ((right - left) >> 1) + left;
            if (target <= nums[mid]) {
                ans = mid;
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        }
        return ans;
    }
}

思路:即不断用二分法逼近查找第一个大于等于target 的下标 。下文给出的代码是笔者习惯的二分写法,ans初值设置为数组长度可以省略边界条件的判断,因为存在一种情况是target 大于数组中的所有数,此时需要插入到数组长度的位置。
(答案的写法确实简洁欸!!!!我觉得我的思路和答案是一样的呜!!!!)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1548839.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python笔记进阶--面向对象(2)

目录 1.类和对象&#xff08;实例&#xff09; 1.1对象&#xff08;实例&#xff09; 1.1.1使用对象组织数据 1.1.2类中增加属性 1.2成员方法&#xff08;类&#xff09; 1.2.1类的定义和使用语法 1.2.2成员方法的使用 1.2.3self关键字的作用 1.3类和对象 2&#xff…

Redis面试题-缓存穿透,缓存击穿,缓存雪崩

1、穿透: 两边都不存在&#xff08;皇帝的新装&#xff09; &#xff08;黑名单&#xff09; &#xff08;布隆过滤器&#xff09; 解释&#xff1a;请求的数据既不在Redis中也不在数据库中&#xff0c;这时我们创建一个黑名单来存储该数据&#xff0c;下次再有类似的请求进来…

鸿蒙OS应用示例:【数字滚动计时】

实现效果&#xff1a; 代码示例&#xff1a; RollingText.ets 组件封装 RollingText.ets 组件封装 /*** 滚动文字特效*/ Component export default struct RollingText {private num:numberprivate timerId: number -1State counter: number 0aboutToAppear() {this.timerId…

MES管理系统与其他系统集成的重要作用

在现代制造业中&#xff0c;随着信息技术的飞速发展&#xff0c;各种管理系统如雨后春笋般涌现&#xff0c;它们各自拥有独特的优势&#xff0c;但唯有将它们紧密集成&#xff0c;才能发挥出最大的价值。其中&#xff0c;MES管理系统作为连接企业计划层与车间控制层的桥梁&…

Docker安装各种组件

列举镜像 docker images // 列举镜像 搜索镜像 docker search jdk 下载镜像&#xff1a; docker pull java 查看镜像&#xff1a; docker images 启动镜像&#xff1a; docker run -it --name jdk1.8 -d java:latest /bin/bash 查看容器&#xff1a; docker ps 查看…

苏州城市学院芮国强一行莅临聚合数据走访调研

3月19日&#xff0c;苏州城市学院校党委书记芮国强、校长赵志宏一行莅临聚合数据&#xff0c;就数据科技赋能行业升级展开调研。聚合数据董事长左磊接待来访。 城市学院党委理论学习中心组一行参观了聚合数据展厅&#xff0c;了解了聚合数据的发展历程、数据产品、应用案例、奖…

模拟算法

例题一 算法思路&#xff1a; 纯模拟。从前往后遍历整个字符串&#xff0c;找到问号之后&#xff0c;就⽤ a ~ z 的每⼀个字符去尝试替换即 可。 例题二 解法&#xff08;模拟 分情况讨论&#xff09;&#xff1a; 算法思路&#xff1a; 模拟 分情况讨论。 计算相邻两个…

Transformer 模型中增加一个 Token 对计算量的影响

Transformer 模型中增加一个 Token 对计算量的影响 Transformer 模型中增加一个 Token 对计算量的影响1. Transformer 模型简介2. Token 对计算量的影响3. 增加一个 Token 的计算量估算4. 应对策略5. 结论 Transformer 模型中增加一个 Token 对计算量的影响 Transformer 模型作…

从姿态估计到3D动画

在本文中&#xff0c;我们将尝试通过跟踪 2D 视频中的动作来渲染人物的 3D 动画。 在 3D 图形中制作人物动画需要大量的运动跟踪器来跟踪人物的动作&#xff0c;并且还需要时间手动制作每个肢体的动画。 我们的目标是提供一种节省时间的方法来完成同样的任务。 我们对这个问题…

【Canvas与艺术】简约式胡萝卜配色汽车速度表

【效果图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>胡萝卜色汽车速度仪表盘简化版</title><style type"…

如何在电脑桌面上创建可视化工作计划日程表?

对于职场人士来说&#xff0c;高效的时间管理和工作计划是提升工作效率、确保任务按时完成的关键。一款优秀的电脑工作计划软件&#xff0c;不仅能够帮助我们清晰地规划每一项任务&#xff0c;还能提醒我们按时完成&#xff0c;从而避免遗漏或延误。 那么&#xff0c;电脑工作…

06_Request

文章目录 前置知识点URL和URIHTTP请求报文和HTTP响应报文 Request请求行请求头请求体特殊信息获取客户机和服务器主机信息 请求参数直接封装引用类型 POST请求请求参数乱码文件上传案例&#xff08;与前面的getServletContext结合&#xff09; Request做请求的转发 前置知识点 …

PTA-练习9

目录 实验10-4 递归实现顺序输出整数 实验10-10 十进制转换二进制 实验10-6 递归求简单交错幂级数的部分和 实验11-1-2 输出月份英文名 实验11-1-6 指定位置输出字符串 实验11-1-8 查找子串 递归的基本思路&#xff1a; 推出递归的条件或者进入递归的条件每层递归需要执行…

JavaScript 打印教程(第二部分)设置编码

JavaScript 打印教程&#xff08;第二部分&#xff09;设置编码 在进行文本打印时&#xff0c;尤其是涉及到中文或其他特殊字符时&#xff0c;正确的编码设置是非常重要的。不同的打印机支持不同的指令集&#xff0c;因此了解并使用适合您打印机的指令集是关键。本篇教程继续使…

07、JS实现:用回溯法实现数组全排列的算法(一步一步剖析,很详细)

回溯法实现数组全排列的算法 Ⅰ、回溯法实现数组全排列&#xff1a;1、题目描述&#xff1a;2、解题思路&#xff1a;3、实现代码&#xff1a; Ⅱ、小结&#xff1a; Ⅰ、回溯法实现数组全排列&#xff1a; 1、题目描述&#xff1a; 给定⼀个 没有重复 数字的序列&#xff0c;…

DBeaver修改sql语句保存位置

1、dbeaver通过工作空间方式来管理Script的sql脚本以及数据库连接。 工作空间&#xff0c;其实也就是一个文件夹 默认保存路径查看&#xff1a; 文件--> 切换工作空间 --> 其他 sql脚本的保存位置默认在工作空间下的 \General\Scripts 文件夹中。 2、 3、点击浏览&#…

海外业务运营 别让资金支出管控成为开疆拓土的“绊脚石”

据《中国企业出海信心报告》显示,超六成企业有海外业务拓展计划。成熟出海企业将把目光放至新市场,新锐出海企业更聚焦新业务线的开辟。其中,当属高端制造业的出海步伐“迈得早”、“迈得大”。 高端制造业主要包含医药制造业,通用设备制造业,专用设备制造业,汽车制造业,通信设…

如何用Flask中的Blueprints构建大型Web应用

本文分享自华为云社区《构建大型Web应用Flask中的Blueprints指南》&#xff0c;作者&#xff1a; 柠檬味拥抱。 什么是Blueprints&#xff1f; 什么是Blueprints&#xff1f; Blueprints是Flask中的一种模式&#xff0c;用于将应用程序分解为可重用的模块。每个蓝图实际上是…

23届嵌入式被裁,有什么好的就业建议?

最近看到了一个提问&#xff0c;原话如下&#xff1a; 本人23届毕业生&#xff0c;就业方向嵌入式软件&#xff0c;坐标深圳&#xff0c;工作3月公司裁员&#xff0c;目前接近12月开始找工作。 boss上投递简历&#xff0c;校招岗&#xff0c;比较有规模的好公司基本已读不回&am…

浅析扩散模型与图像生成【应用篇】(十二)——DiffI2I

12. DiffI2I: Efficient Diffusion Model for Image-to-Image Translation 该文提出一种基于扩散模型的图像到图像的转换算法&#xff08;DiffI2I&#xff09;,可用于图像修复、超分辨率提升、图像去模糊、语义分割等任务。作者指出一般的扩散模型&#xff0c;虽然在图像生成任…