【代码随想录】35. 搜索插入位置

金融监管压力测试场景生成 压力测试是一种评估金融资产或机构在极端市场条件下的表现和风险承受能力的方法。它通过模拟各种不利的市场情景,测试金融机构在这些情景下的财务状况和运营能力。压力测试的作用在于帮助金融机构识别潜在风险,评估应对策略,并制定应急预案。总结压力测试场景生成系统的开发过程和实现效果,强调其在金融监管中的重要性和应用价值。随着金融市场的发展,实时压力测试将越来越重要。未来,压力测试需要更加注重实时性和动态性,及时反映市场的变化。本文详细介绍了金融监管压力测试的重要性、核心概念、算法原理、系统架构以及实战案例。 阅读详情

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

请必须使用时间复杂度为 O(log n) 的算法。

示例 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

使用二分法就可以很快解决了,需要判断的是究竟return哪个?

 if target == nums[mid]

这种情况就可以直接return mid了

另外的条件判断target > nums[mid]  和   target < nums[mid]的情况

1.当target在左区间,我们需要right-1,举个例子1,3,5,7,9 mid=2 nums[2]=5,我们需要插入target=4

right=mid-1 所以right=1,那么这种情况我们需要最后return right+1 就是target需要插入的位置.

2.当target在右区间,我们需要插入target=6 nums[2]=5, target在左区间, left=mid+1=3,right=4

mid=(3+4)/2=3, nums[3]=7>target=6, target又回到了左区间,right=mid-1=2 right<left,结束while。

这个时候就知道6放在5后面, return right+1

3.可以跑一次放在第一位和最后一位也是right+1

4.所以最后return right+1即可

func searchInsert(nums []int, target int) int {
    left,right:=0,len(nums)-1
    for left<=right {
        mid:=left+(right-left)>>1
        if target == nums[mid]{
            return mid
        } else if target > nums[mid] {
            left=mid+1
        } else {
            right=mid-1
        }
    }

      // 分别处理如下四种情况
      // 目标值在数组所有元素之前  [0, -1]
      // 目标值等于数组中某一个元素  return middle;
      // 目标值插入数组中的位置 [left, right],return  right + 1
     // 目标值在数组所有元素之后的情况 [left, right], 因为是右闭区间,所以 return right + 1
    return right+1
}

SPI为什么不需要加上拉电阻 大家好,我是记得诚。I2C因为其开漏的结构,无法输出高电平,所以外部加上拉电阻。我们在使用SPI的时候,发现是不需要加上拉电阻的。主要因为SPI多为推挽的结构,推挽电路,高低电平都可以输出,所以外部不需要加上拉电阻。推挽电路可以用2个三极管或者2个MOS管搭建而成。 阅读详情

相关推荐

5分钟搞定!用Keil MDK将STM32F103C8T6工程无缝迁移到ZET6开发板

本文详细介绍了如何在Keil MDK环境下快速将STM32F103C8T6工程迁移到ZET6开发板,涵盖硬件差异对比、工程配置调整、外设适配及编译排错等关键步骤,帮助开发者5分钟内完成工程移植,大幅提升开发效率。

weixin_30879169的博客 409

插入位置python

对一个有序的整数序列,现在要将一个整数插入进去,并保证该序列仍然有序。请输出这个数要插入的位置‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬ 第一行输入若干个整数,以空格间隔,本题保证用例中输入的数值顺序一定是从小到大,原始列表中无重复数据‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬

weixin_63305389的博客 3067

Grafana图像渲染插件安装全攻略:解决依赖缺失问题(附完整命令清单)

本文详细介绍了在CentOS/RHEL环境下安装Grafana图像渲染插件`grafana-image-renderer`的全过程,包括解决常见的依赖缺失问题。通过提供完整的命令清单和疑难问题排查指南,帮助用户高效部署和优化插件性能,确保图像渲染功能稳定运行。

weixin_30399821的博客 86

35. 搜索插入位置(逐句解释代码)

package LeetCode.OneToFiveHundred; import java.util.Arrays; public class ThirtyFive { public int searchInsert(int[] nums, int target) { int len = nums.length; if (len == 0) return 0; // 可以进行查找,如果有的话,直接就返回能节省时间 int temp

Rabbit-Sir的博客 176

比较器和运算放大器-2

今天继续了解输入阻抗问题,观察下图:首先考虑在我们没有接运放时,A点输出电压为6V,当接入如图所示的阻抗时电压还是6V吗?共模电阻和红框内对地电阻并联,阻值变小,相当于5k,通过计算可以求得A点电压变为4V,这样A的值发生了改变,试想一下这样的信号接入到运放的两端是不是相当于比较的两端信号发生了改变,那结果一定会发生偏离。信号源一般内阻是不确定的,一般也不是很小,如果不想改变输入阻抗,那唯一的办法就是改变运放的内阻了,比如内阻改为100K,1M等,越大越好,是不是A点电压就会无限接近6V。

weixin_42855218的博客 1312

QFN封装芯片手工焊接实战:从焊盘处理到拖焊技巧

本文详细介绍了QFN封装芯片手工焊接的全过程,从焊盘处理到拖焊技巧,再到常见问题的现场修复方法。通过实战经验分享,帮助工程师和DIY爱好者掌握0.5mm小间距QFN芯片的焊接技术,提升焊接成功率和质量。重点讲解了垂直与平行拖焊手法的对比应用,以及焊后清理与质量检验的关键步骤。

weixin_42652674的博客 532

【代码随想录刷题记录】LeetCode35搜索插入位置

我演示的是找不到的情况,其实就是while循环跳出后应该处理的相关的逻辑,第一个是left>right,第二个其实就到left==right就跳出循环了,所以这两种情况对应的就是找不到的情况,最后画一下图就明白了。

随手写写 1214

vivado实现SDI接口

XAPP1249,用来介绍UHD_SDI的实现。

Huskar_Liu的博客 7076

# 代码随想录 35.搜索插入位置

此时可以分析出,在left 左边的,一定是小于等于target 的部分,在right 右边的,一定是大于等于arget 的部分,这时整个数组就被left和right分割成了两半,所以如果target要按序插入进数组,就直接插入在left的位置就可以了!可以看到,退出while循环的条件是 left

yangyi22f的博客 380

Exchange 2013/2016/2019修改附件大小限制

Exchange 2013/2016/2019邮件大小限制 可以在三个位置上配置Exchange上的默认邮件大小限制: 组织传输设置 发送/接收连接器设置 用户邮箱设置 1.打开Exchange Management Shell 使用命令查看默认限制 get-transportconfig | ft maxsendsize, maxreceivesize get-receiveconnector | ft name, maxmessagesize get-sendconnector | ft

高级基础架构专家-Hunter 6099

RT-DETR改进策略【小目标改进】| Shape-NWD:融合改进,结合Shape-IoU和NWD 更好地适应小目标特性

Bw−wgt2h−hgt2weight2Bweight2w−wgt​2h−hgt​2​其中weight2weight = 2weight2。

Limiiiing的博客 1544

代码随想录 35. 搜索插入位置

elsereturn mid。

2303_79080543的博客 244

项目篇 | 图书管理系统 | 管理员模块 | 概述

图书管理系统管理员模块概述

百栗.的博客 405

代码随想录-02二分查找-35. 搜索插入位置

在本科毕设结束后,开始刷“代码随想录”,每天一节。总结笔记均会放在“算法刷题-代码随想录”该专栏下,以下有原文的链接。 35. 搜索插入位置当题目中包含数据结构为“数组”(比如链表就不可以使用二分查找,因为二分查找只能在内存地址连续的数据结构中进行),并且该“数组为有序数组”以及**“数组中无重复元素”**这三个前提条件,很有可能可以使用“二分查找”。思路: 此题目要求返回target在数组中的位置,若在数组中找不到该元素,则返回顺序插入的位置下标。 ........................

weixin_43356308的博客 795

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

qq_46574748的博客 411

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

代码随想录第一天|704 二分查找,35 搜索插入位置 34 在排序数组中查找元素的第一个和最后一个位置 27 移除元素 977 有序数组的平方

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]

m0_56284685的博客 400

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素、35.搜索插入位置

704. 二分查找、27. 移除元素、35.搜索插入位置

Kathrynzzz的博客 692

代码随想录Day01 | 704.二分查找,35.搜索插入位置,34.在排序数组中查找元素的第一个和最后一个位置,27.移除元素,977.有序数组的平方

代码随想录Day01 | 704.二分查找,35.搜索插入位置,34.在排序数组中查找元素的第一个和最后一个位置,27.移除元素,977.有序数组的平方

weixin_43992121的博客 281

代码随想录算法训练营第一天|35.搜索插入位置

虽然是对的,但是若是这种情况,right经过while循环会迭代为大于target的最小值的位置减一的位置,返回right+1就是待插入位置。是多余的,因为经过二分查找,若是target小于nums[0],right会迭代到-1的位置,while循环后返回right + 1就是待插入位置。若是target大于nums[nums.size()],right在while中不变,最后返回right+1就是待插入位置。写出来是对的,但是还是小看了二分法,写了很多冗余代码,阅读题解后收获挺多。

qq_57942139的博客 696

代码随想录算法训练营day1-35.搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。这道题是二分查找的一个变形关键字,有序数组、无重复元素,二分查找无疑要求O(log n),不能使用暴力遍历实际上看完我上一节的二分查找应该不难回答这个问题重点还是掌握好区间。

社会你鑫哥的博客 286

代码随想录Day1:704二分查找、27移除元素、35搜索插入位置 C++

文章讲解:https://programmercarl.com/0027.%E7%A7%BB%E9%99%A4%E5%85%83%E7%B4%A0.html。第 2 3 4 种情况,都是704中找不到的情况,即已经循环到最后,所以最后一圈循环的条件是l == r。二分的思路大概知道,但是实现起来就不会了,看了题解之后理解了l和r控制的是区间,思路清晰了好多。第一种情况,与704一致,能够查找到元素,此时的mid就是要找的位置,return mid。二分查找,最后返回的位置需要理解。

weixin_44218597的博客 121

代码随想录 day56 按奇偶排序数组II 35.搜索插入位置

【代码】代码随想录 day 56 按奇偶排序数组II 35.搜索插入位置。

qq_40445763的博客 266

代码随想录day1| 704. 二分查找、35.搜索插入位置、27. 移除元素。

【代码】代码随想录day1| 704. 二分查找、27. 移除元素。

qq_45948139的博客 1909

代码随想录算法训练营第一天 | 704. 二分查找,35. 搜索插入位置,27.移除元素

代码随想录算法训练营第一天 | 704. 二分查找,35. 搜索插入位置,27.移除元素

weixin_49937617的博客 4179

代码随想录算法训练营第一天(拓展题)|35. 搜索插入位置|

代码随想录算法训练营第一天(拓展题)|35. 搜索插入位置|

yukino_shita2003的博客 772

代码随想录算法训练营第一天| 704. 二分查找、35.搜索插入位置、27. 移除元素

今天是练习的第一天。对于c++来说,自己已经很久没有写过了,平时连看的都不多。之前也只跟着书本学过一遍,只敲过案例,很多基础语法也都忘了。后面一点一点的学习。只要学习了就有收获。

m0_63255131的博客 3267
上一篇: 【代码随想录研读笔记】704. 二分查找
下一篇: 【代码随想录算法研读】27. 移除元素
evilwave
博客等级 码龄19年 5粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值