java数据结构与算法刷题-----LeetCode35:搜索插入位置

【LeetCode 简单 数组】35 搜索插入位置 想要看更加舒服的排版、更加准时的推送 关注公众号“不太灵光的程序员” 每日八点有干货推送,微信随时解答你的疑问 35 搜索插入位置 python3 简单 数组 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例 2: 输入: [1,3,5,6], 2 输出: 1 示例 3: 输入: [1,3,5,6], 7 输出: 4 示例 4: 输入: [. 阅读详情
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.youkuaiyun.com/grd_java/article/details/123063846

在这里插入图片描述

  1. 思路分析

二分查找,具体看注释

  1. 代码
    在这里插入图片描述
class Solution {
    public int searchInsert(int[] nums, int target) {
        int len = nums.length;//长度,提高效率
        int left = 0,right = len-1,ans = len;//左右指针
        while(left<=right){//二分
            int mid = left+((right-left)>>2);//二分,算出中间的位置>>2相当于除以2
            if(target<=nums[mid]){//如果目标值小于等于当前中间值,记录中间值,
                 right = mid-1;//说明在左边
                 ans = mid;//目标位置,如果不存在就是要插入的位置
            }
            else left = mid+1;//说明在右边
        }
        return ans;

    }
}

刷题一定要坚持,总结套路,不单单要把题做出来,要举一反三,也要参考别人的思路,学习别人解题的优点,找出你觉得可以优化的点。

  1. 单链表解题思路:双指针、快慢指针、反转链表、预先指针
  1. 双指针:对于单链表而言,可以方便的让我们遍历结点,并做一些额外的事
  2. 快慢指针:常用于找链表中点,找循环链表的循环点,一般快指针每次移动两个结点,慢指针每次移动一个结点。
  3. 反转链表:通常有些题,将链表反转后会更好做,一般选用三指针迭代法,递归的空间复杂度有点高
  4. 预先指针:常用于找结点,比如找倒数第3个结点,那么定义两个指针,第一个指针先移动3个结点,然后两个指针一起遍历,当第一个指针遍历完成,第二个指针指向的结点就是要找的结点
  1. 数组解题思路:双指针、三指针,下标标记
  1. 双指针:多用于减少时间复杂度,快速遍历数组
  2. 三指针:多用于二分查找,分为中间指针,左和右指针
  3. 下标标记:常用于在数组范围内找东西,而不想使用额外的空间的情况,比如找数组长度为n,元素取值范围为[1,n]的数组中没有出现的数字,遍历每个元素,然后将对应下标位置的元素变为负数或者超出[1,n]范围的正数,最后没有发生变化的元素,就是缺少的值。
  4. 差分数组:对差分数组求前缀和即可得到原数组
  1. 用差值,作为下标,节省空间找东西。比如1900年到2000年,就可以定义100大小的数组,每个数组元素下标的查找为1900。
  2. 前缀和数组,对于数组 [1,2,2,4],其差分数组为 [1,1,0,2],差分数组的第 ii个数即为原数组的第 i-1 个元素和第 i个元素的差值,也就是说我们对差分数组求前缀和即可得到原数组
  1. 前缀和:假设有一个数组arr[1,2,3,4]。然后创建一个前缀和数组sum,记录从开头到每个元素区间的和。第一个元素是0。第二个元素,保存第一个和sum[1] = sum[0]+arr[0],第二个元素,保存第二个和sum[2] = sum[1]+arr[1]
  1. 栈解题思路:倒着入栈,双栈
  1. 倒着入栈:适用于出栈时想让输出是正序的情况。比如字符串’abc’,如果倒着入栈,那么栈中元素是(c,b,a)。栈是先进后出,此时出栈,结果为abc。
  2. 双栈:适用于实现队列的先入先出效果。一个栈负责输入,另一个栈负责输出。
Simulink中Simscape—Fluids模块(原Simhydraulics)学习记录 学习来源:http://cn.mathworks.com/help/physmod/hydro/getting-started-with-simhydraulics.html 主要学习内容如下图: 详细内容: 1、组件来源 SIMULINK浏览器中的模块:Simscape_Foundation 和 Simscape_Fluids。 2、Simscape下包括多个子 阅读详情

相关推荐

波分复用-Zblock仿真

Z-BLOCK是一种用于光通信模块的光学元件,其核心结构是在玻璃块一侧贴有4个特定波长滤光片,另一侧镀有反射膜和增透膜。光信号在内部呈现Z字形反射路径,实现波长分离。文章以可见光LED为例,在ZEMAX中演示了非序列模式下的建模过程,重点介绍了滤光片和膜层的参数设置方法。需要注意的是,入射角度需根据玻璃折射率、通道高度和厚度精确计算,否则可能导致光泄漏。该建模方法同样适用于光通信中的光纤激光器系统。

Zhaxibamao的博客 1756

java数据结构与算法刷题-----LeetCode21:合并两个有序链表

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.youkuaiyun.com/grd_java/article/details/123063846 思路分析 现在有两个链表,我们要将其合并为一个 最好不要改变原有链表,也就是最终合并结果,使用新的链表来保存 可以采用双指针的思路,而链表本身就是一个指针(指向自己并且保存自己的下一个元素) 所以,我们对比两个指针的值,小的就插入到新链表中...

殷志鹏的博客 1234

DRAM架构演进与HBM技术在高性能计算中的应用

DRAM(动态随机存取存储器)是现代计算系统中关键的内存技术,其架构优化直接影响数据供给能力。随着AI训练和科学计算等数据密集型负载的普及,传统DDR架构面临带宽墙、能效比和访问粒度等挑战。HBM(高带宽内存)通过3D堆叠技术(如TSV硅通孔)和异构集成(如PIM存内计算)显著提升了带宽和能效比。这些技术在高性能计算、AI推理和大模型训练等场景中展现出巨大潜力,例如HBM3的带宽可达819GB/s,能效比低至0.95pJ/b。未来,DRAM技术将继续向更高密度、更低功耗和更智能的内存计算方向发展。

weixin_35757191的博客 400

删除重复的电子邮箱

1、问题描述 编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。 2、 创建表格 代码 create table if not exists Person(Id varchar(8), Email varchar(255)); delete * from Person where 1=1; // truncate table Person; insert into Person (Id, Email) values( '1', 'john@ex

qq_45793102的博客 236

用STM32的SPI模式2搞定SSI绝对值编码器通信(附完整代码与避坑点)

本文详细解析了如何使用STM32的SPI模式2实现SSI绝对值编码器通信,包括硬件设计、SPI配置、数据处理算法及稳定性优化技巧。通过完整的代码示例和避坑指南,帮助工程师解决时序匹配、数据解析等常见问题,提升工业自动化系统中的编码器通信可靠性。

weixin_27252001的博客 269

cosmos-curate工业级视频数据预处理引擎/终端用户指南( end-user-guide)

摘要:Cosmos-Curate是一个用于视频和自动驾驶数据处理的开源工具,提供从本地到集群的完整部署方案。文档针对三类用户:终端用户(配置运行现有管道)、开发者(修改/创建管道)和贡献者(改进代码库)。核心功能包括容器化设计(Docker+NVIDIA工具链)、多平台支持(本地/Slurm/云)、集成HuggingFace/NGC模型,以及可扩展的管道架构。使用需满足硬件(如Ampere架构GPU)和软件(Ubuntu22.04+Python3.10)要求,通过CLI工具构建镜像、下载模型并运行示例管道(

qq_45053161的博客 1204

Java求回文数的两种巧妙方法---LeetCode9 回文数

Java求回文数两种巧妙方法详解

Forever_xxx的博客 1454

ESD放电模式以及电源箝位 (power clamp )电路

由于ESD电压具有很快的上升速度(其ESD脉冲上升时间约在10ns左右),Vrc端的电压因为RC延迟效应无法跟得上VDD端的ESD电压上升速度,Vrc端的为低电位导致反相器工由于ESD电压具有很快的上升速度(其ESD脉冲上升时间约在10ns左右),Vrc端的电压因为RC延迟效应无法跟得上VDD端的ESD电压上升速度,Vrc端的为低电位导致反相器工作将输出端Vout电压上拉到高电位。从而Vg端的高电位触发导通了NMOS元件(Mesd)的晶体管,因而ESD电流便经由Mesd而泄放掉。由于晶体管Mesd的栅极导通

DOG_BITE_DOG的博客 2万+

牛客Top200---最长回文字符串(java)

题目 题解:中心扩展法 描述:遍历,从左到右遍历,然后向两端扩展 假设每个字符都是回文串最中心的字符,从中心字符向两边扩展,若左右字符不同则他就不会是回文串。 回文字符串需要分情况考虑,分奇偶两种情况,为奇数是i==i,然后向两边扩展,当为偶数时,先判断 i ==i+1 字符是否一样,一样则向两边扩展,否则他就不可能是回文串。 最后回文长度就是right - left -1,这个可以举两个例子 import java.util.*; public class Solution { publi

小样yx的博客 1961

MFC工具栏增加EditBox和Button

1. 在资源视图中增加EditBox, Button控件,ID分别为ID_EDIT_SEED, ID_BTN_SEED 2. 在CMainFrame中增加成员变量 CMFCToolBarEditBoxButton *m_editSeed; CMFCToolBarButton *m_btnSeed; 3. 在CMainFrame::OnCreate中创建控件 m_editSeed = new CMFCToolBarEditBoxButton(ID_EDIT_SEED, GetCmdMgr()-&.

学习是为了探索这个世界的本质 804

【SpringBoot 4.x 第29节】Spring Security 7 入门:先理解认证和授权!

🏆 本文收录于 《滚雪球学 Spring Boot 4.x》 专栏。本专栏面向 有一定 Java 基础,但尚未系统学习 Spring Boot 的读者,采用“滚雪球式学习法”:先跑通、再理解、再重构、再上线,带你从第一个 Hello API 开始,逐步完成一个可部署、可监控、可扩展的后端项目。

**My Coding Family** 553

java 最长回文串_通俗易懂的最长回文串图解、说明及Java代码(中心扩散法和Manacher算法)...

1. 回文串作为程序员,回文串这个词已经见怪不怪了,就是一个字符串正着读和反着读是一样的,形式如abcdcba、bbaabb。这里涉及到奇回文和偶回文,奇回文指回文串的字符数是奇数,偶回文指回文串的字符数是偶数。前面举的abcdcba就是奇回文,bbaabb就是偶回文。判断一个字符串是否是回文串很简单,只要从字符串的两端开始往中间扫描,全部匹配成功则是回文串,只要有一次匹配失败,那么就不是回文串。...

weixin_27130513的博客 619

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

LeetCode 35. Search Insert Position (Easy)

上班无聊就在leetCode刷刷题目,有点遗憾的是到现在才去刷算法题,大学那会好好利用该多好啊。 第35道简单算法题,一次性通过有点开心,分享自己的代码。 问题描述 Given a sorted array and a target value, return the index if the target is found. If not, return the index wh...

ailuannian3778的博客 147

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java实现 LeetCode 35 搜索插入位置

35. 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例 2: 输入: [1,3,5,6], 2 输出: 1 示例 3: 输入: [1,3,5,6], 7 输出: 4 示例 4: 输入: [1,3,5,6], 0 输出:...

南 墙 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【经典算法】LeetCode 35. 搜索插入位置(Java/C/Python3/Golang实现含注释说明,Easy)

方式优点缺点时间复杂度空间复杂度方式一(二分查找)效率高,时间复杂度低需要数组有序O(log n)O(1)方式二(线性搜索)代码简单,容易理解时间复杂度较高O(n)O(1)

2687

LeetCode刷题汇总

剑指offer 剑指 Offer 03 数组中重复的数字 剑指 Offer 04 二维数组中的查找 剑指 Offer 05 替换空格 剑指 Offer 06 从尾到头打印链表 剑指 Offer 07 重建二叉树 剑指 Offer 09 用两个栈实现队列 剑指 Offer 10- I 斐波那契数列 剑指 Offer 10- II 青蛙跳台阶问题 剑指 Offer 11 旋转数组的最小数字 剑指 Offer 12 矩阵中的路径 剑指 Offer 13 机器人的运动范围 剑指 Offer 14- I 剪绳子 剑指

weixin_44171872的博客 2万+

【JAVA】搜索插入位置——力扣每日一题(五)(2020.07.17)

目录题目:35. 搜索插入位置思路方法一:暴力方法二:二分法 如果你从本文中学习到丝毫知识,那么请您点点关注、点赞、评论和收藏 大家好,我是爱做梦的鱼,我是东北大学大数据实验班大三的小菜鸡,非常渴望优秀,羡慕优秀的人,个人博客为:爱做梦的鱼https://zihao.blog.youkuaiyun.com/,微信公众号、微信视频号为【程序猿干货铺】 如果你同样热爱算法,那么请关注我,我将每日更新力扣的每日一题的题解+代码,每周更新力扣周赛题解+代码 本题Python代码版 专栏《力扣每日一题》 专栏《力扣周赛》

子浩的博客 4962

LeetCode 35. 搜索插入位置(二分查找)

文章目录1. 题目信息2. 解题2.1 暴力遍历2.2 二分查找 1. 题目信息 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例 2: 输入: [1,3,5,6], 2 输出: 1 示例 3: 输入: [1,3,5,6], 7...

Michael是个半路程序员 1460

LeetCode 热题 100 35.搜索插入位置

如果暴力的话需要 O(n) 的时间复杂度,如果二分查找的话则可以降低到 O(logn) 的时间复杂度

2301_80558092的博客 799

【Python3】搜索插入位置——力扣每日一题(五)(2020.07.17)

目录题目:35. 搜索插入位置思路方法一:暴力方法二:二分法 如果你从本文中学习到丝毫知识,那么请您点点关注、点赞、评论和收藏 大家好,我是爱做梦的鱼,我是东北大学大数据实验班大三的小菜鸡,非常渴望优秀,羡慕优秀的人,个人博客为:爱做梦的鱼https://zihao.blog.youkuaiyun.com/,微信公众号、微信视频号为【程序猿干货铺】 如果你同样热爱算法,那么请关注我,我将每日更新力扣的每日一题的题解+代码,每周更新力扣周赛题解+代码 《本题JAVA代码版》 专栏《力扣每日一题》 专栏《力扣周赛》

子浩的博客 3056

二分查找、第一个错误的版本、搜索插入位置

1、LeetCode 704.二分查找 题目 给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。 小编菜解 public static int search(int[] nums, int target) { int left = 0; int right = nums.length - 1; while (left < right){ ...

学Java,找哪吒 3584

LeetCode--Java实现704.二分查找、278.第一个错误的版本、35.搜索插入位置

目录学习背景704.二分查找题目分析解题思路代码实现278.第一个错误的版本题目分析解题思路代码实现35.搜索插入位置题目分析解题思路代码实现 学习背景 本文主要介绍如何通过Java实现LeetCode官方提供的以下数据结构与算法题目: 704.二分查找 278.第一个错误的版本 35.搜索插入位置 704.二分查找 题目分析 原题: 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回

JustinQin 1395

蓝桥与力扣刷题(35 搜索插入位置)

题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。,直到找到目标值(插入)返回对应的索引下标时结束。请必须使用时间复杂度为。

旧栎 379

Leetcode35. 搜索插入位置

Leetcode35. 搜索插入位置 题目: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 : 输入: [1,3,5,6], 5 输出: 2 题解: 标签:二分查找 如果该题目暴力解决的话需要 O(n)O(n)O(n)的时间复杂度,但是如果二分的话则可以降低到 O(logn)O(logn...

会流泪de鱼的博客 425

【leetcode】P35搜索插入位置

//给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 // // 你可以假设数组中无重复元素。 // // 示例 1: // // 输入: [1,3,5,6], 5 //输出: 2 // // // 示例 2: // // 输入: [1,3,5,6], 2 //输出: 1 // // // 示例 3: // // 输入: [1,3,5,6], 7 //输出: 4 // // // 示例 4: // // 输入: [1,

weixin_44373412的博客 201

[LeetCode] 35. 搜索插入位置(java实现)二分

[LeetCode] 35. 搜索插入位置(java实现)二分1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结 1. 题目 2. 读题(需要重点注意的东西) 思路(二分): 二分的核心是找出一个分界点,如果左右两段有不同的性质,二分就能给它找出来。 二分的模板有两种可能的情况 ① 当 l = mid时,else后的 r 一定等于mid - 1, 上面的mid在 l + r 的基础上也要+1;总结成下方这段模板; while(l &

cloud的博客 151
上一篇: java数据结构与算法刷题-----LeetCode53:最大子数组和
下一篇: java数据结构与算法刷题-----LeetCode66:加一
ydenergy_殷志鹏
博客等级 码龄7年 5887粉丝 543原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ydenergy_殷志鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值