自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 leetcode--盛最多水的容器,接雨水

换句话说,如果要找到一个容量比蓝色区域部分更大的容器,那么肯定不会包含这条线(如 ,右边这条红色的线),所以可以直接去掉,在剩下的线中继续去找。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。(2)如果中间的线一样长,或者比它长,那么容纳水的高度不变,宽度变小,则这一部分的面积仍然比蓝色部分的面积小。(1)如果中间的线比它短,那么容纳的水宽度变短,高度变小,则这一部分的面积肯定比蓝色部分的面积小。

2025-04-27 20:48:18 527

原创 leetcode--两数之和 三数之和

1 与 0 之和等于目标数 -1。因此 index1 = 1, index2 = 2。返回 [1, 2]。2 与 7 之和等于目标数 9。因此 index1 = 1, index2 = 2。返回 [1, 2]。因此 index1 = 1, index2 = 3。返回 [1, 3]。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。你所设计的解决方案必须只使用常量级的额外空间。注意,输出的顺序和三元组的顺序并不重要。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。

2025-04-22 15:59:52 438

原创 面试题02.03.删除中间节点

首先,我们定义一个结点p指向要删除结点c的后继结点d,接着我们将后继结点d的值复制给要删除的结点c,再删除该结点的后继结点即可。例如:传入结点c,(位于单链表a->b->c->d中),将其删除后,剩余链表为a->b->d。若链表中的某个节点,既不是链表头节点,也不是链表尾节点,则称其为该链表的「中间节点」。不返回任何数据,从链表中删除传入的节点 5,使链表变为 4->1->9。假定已知链表的某一个中间节点,请实现一种算法,将该节点从链表中删除。节点 5 (位于单向链表 4->5->1->9 中)

2025-03-07 17:05:54 212

原创 面试题02.02.返回倒数第k个节点

题解:这道题很常见,用快慢指针就可以解决,小编就不赘述了,直接看代码。实现一种算法,找出单向链表中倒数第 k 个节点。1->2->3->4->5 和。本题相对原题稍作改动。

2025-03-03 17:31:45 302

原创 面试题02.01.移除重复节点

编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。如果不得使用临时缓冲区,该怎么解决?

2025-03-03 17:21:30 376

原创 leetcode---LCR 140.训练计划

先让fast指针先走cnt个结点,然后fast和slow一起走,直到fast为NULL时,停下来,此时slow指针指向的结点就是要返回的结点。的链表用于记录一系列核心肌群训练项目编号,请查找并返回倒数第。要返回倒数第cnt个节点,可以使用快慢指针。

2025-03-01 18:02:31 309

原创 leetcode---LCR 136.删除链表的节点

给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。

2025-03-01 17:40:39 296

原创 leetcode---LCR 123.图书整理1

书店店员有一张链表形式的书单,每个节点代表一本书,节点中的值表示书的编号。为更方便整理书架,店员需要将书单倒过来排列,就可以从最后一本书开始整理,逐一将书放回到书架上。请倒序返回这个书单链表。

2025-03-01 17:27:09 303

原创 Linux---共享内存

共享内存为多个进程之间共享和传递数据提供了一种有效的方式。共享内存是先在物理地址上申请一块空间,多个进程可以将其映射到自己的虚拟地址空间中。所以进程都可以访问共享内存中的地址,就好像它们是由malloc分配的一样。如果某个进程向共享内存写入了数据,所做的改动将立刻被可以访问同一段共享内存的任何其他进程看到。但是由于它并未提供同步机制,所以我们通常需要用其他的机制来同步对共享内存的访问。5.共享内存函数介绍1)shmgetshmget()用于创建或者获取共享内存。

2025-03-01 16:50:59 701

原创 数据结构---哈希表(总结)

开地址法非同义词也会产生冲突,比如原来需要存储的地址有元素,我们放入下一个地址,那么下一个地址需要存储的元素本来和这个不是同义词,但是也产生冲突了,这种就叫做聚集现象.除留余数法比其他方法好,更均匀一些,通常我们的除数取一个质数,取一个小于等于表长的质数更好.这个就会获得一个比较好的散列效果.解决冲突的方法是看看解决的冲突解决的是不是比较好,如果冲突解决的比较好,那么它的时间复杂度就会比较小.而链地址法不会有这种问题,因为它的同义词都挂在各自的链表上,非同义词之间没有冲突,没有聚集现象;

2025-02-28 15:21:38 353

原创 数据结构---哈希表:链地址法

例如:一组关键字为{19,14,23,1,68,20,84,27,55,11,10,79},散列函数为:Hash(key)=key%13,:相同散列地址的记录链成一单链表,m个散列地址就设m个单链表,然后用一个数组将m个单链表的表头指针存储起来,形成一个动态的结构.那么接下来我们就要依据我们的散列函数来建立我们的哈希表,那么我们开始写代码,主要是先设计结构,然后建立哈希表和查找哈希表.就会发现有些元素是同义词,比如14%131,1%131,27%13==1,14,1,27是同义词。

2025-02-28 15:13:02 360

原创 数据结构---哈希表:开地址法

【代码】数据结构---哈希表:开地址法。

2025-02-28 15:04:30 340

原创 leetcode---1290.二进制链表转整数

给你一个单链表的引用结点head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的。5二进制数 (101) 转化为十进制数 (5)head = [0]0head = [1]11888003001。

2025-02-26 11:43:14 376

原创 leetcode---876.链表的中间结点

该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。本题可以使用快慢指针的方法,就可以很快解决问题。如果有两个中间结点,则返回第二个中间结点。,请你找出并返回链表的中间结点。链表只有一个中间结点,值为 3。

2025-02-26 11:18:15 230

原创 leetcode---234.回文链表

给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。

2025-02-25 17:11:57 545

原创 leetcode---206.反转链表

然后cur->next=pre,接下来pre和cur分别向右移动一位,重复以上操作,直到cur指向null节点,pre指针指向原来链表的最后一个节点,接下来我们只需要将pre节点返回,就可以得到反转后的新链表。如图,定义一个pre指针,指向null节点,再定义一个cur指针,指向链表的第一个节点,,请你反转链表,并返回反转后的链表。

2025-02-24 18:20:46 247

原创 leetcode---203.移除链表元素

由于只需要进行一次遍历,时间复杂度为O(n),空间复杂度为O(1),请你删除链表中所有满足。给你一个链表的头节点。

2025-02-24 18:02:11 198

原创 leetcode---160.相交链表

请注意相交节点的值不为 1,因为在链表 A 和链表 B 之中值为 1 的节点 (A 中第二个节点和 B 中第三个节点) 是不同的节点。换句话说,它们在内存中指向两个不同的位置,而链表 A 和链表 B 中值为 8 的节点 (A 中第三个节点,B 中第四个节点) 在内存中指向相同的位置。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,6,1,8,4,5]。从各自的表头开始算起,链表 A 为 [1,9,1,2,4],链表 B 为 [3,2,4]。那么我们用同样的方法处理即可。

2025-02-24 17:35:02 1032

原创 leetcode---141.环形链表

如果有环,快指针先进入环,慢指针后进入环,假设快指针再环中领先慢指针k个节点,因为都在环中,可以理解为快指针追赶慢指针的过程。指针再次到达,则链表中存在环。检测链表是否有环,我们可以用快慢指针的方法,慢指针一次走1步,快指针一次走2步,本题中,每次慢指针走一步,快指针走两步,每走一次快慢指针间的距离都缩小2-1=1。来表示链表尾连接到链表中的位置(索引从 0 开始)。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。仅仅是为了标识链表的实际情况。,判断链表中是否有环。

2025-02-24 16:53:49 325

原创 Leetcode---83.删除排序链表中的重复元素

删除所有重复的元素,使每个元素只出现一次。给定一个已排序的链表的头。

2025-02-24 16:21:57 268

原创 Leetcode---21.合并两个有序链表

根据题目描述,所谓的合并就是从头节点开始比较,把较小的节点先加入最终要返回的链表中,依次向后比较。新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。

2025-02-24 16:03:58 174

原创 数据结构---定长顺序表

存在唯一的一个被称为“第一个”的数据元素;存在唯一的一个被称为“最后一个”的数据元素;除第一个之外,集合中的每一个数据元素都只有一个前驱;除最后一个之外,集合中的每一个数据元素都只有一个后继。顺序表又分为定长顺序表和不定长顺序表。在某号位置插入某个数据,即将ps->elem[i+1]=ps->elem[i];①在ps中查找第一个key值,找到返回下标,没有找到返回-1;④//返回key的前驱下标,如果不存在返回-1。⑤返回key的后继下标,如果不存在返回-1。头文件sqlist.h文件。

2025-02-24 15:29:00 361

原创 数据结构---哈希表

一.散列表的概念散列表是一种新的存储形式,它既不是杂乱无章的,也不是排好序,有序的存储方式,。即看似混乱的数据是通过hash函数运算存放的,这种存储方式我们称之为散列存储,或hash存储,这个函数就称之为哈希函数或散列函数,存储的表我们就称为散列表或者哈希表。二.哈希表的优缺点,直接对应哈希函数去查找,比折半查找,树的查找效率都要高,可以几乎达到O(1),根据关键字的值直接计算就可以找到,如果存储的最大值特别大,我们中间就会空着很多空间没有利用。

2025-02-23 18:07:07 1152

原创 LeetCode---94.二叉树的中序遍历

给定一个二叉树的根节点。

2025-02-09 14:19:20 227

原创 LeetCode---111.二叉树的最小深度

给定一个二叉树,找出其最小深度。

2025-02-09 14:04:58 275

原创 LeetCode---110.平衡二叉树

给定一个二叉树,判断它是否是 平衡二叉树。

2025-02-09 13:37:52 232

原创 蓝桥杯刷题9

第1578题:年份计数。

2024-11-04 20:25:49 1008

原创 蓝桥杯刷题8--第19709题:好数

一个整数如果按从低位到高位的顺序,奇数位 (个位、百位、万位 ⋯⋯ ) 上的数字是奇数,偶数位 (十位、千位、十万位 ⋯⋯ ) 上的数字是偶数,我们就称之为 “好数”。我们通常用得个位 (n%10),丢个位 (n\10) 的方法处理。给定一个正整数 NN,请计算从 1 到 NN 一共有多少个好数。

2024-11-04 10:16:18 305

原创 蓝桥杯刷题7---第1598题:2021公约数

请问在 11(含) 到 20212021(含) 中,有多少个数与 20212021 存在大于 11 的公约数。请注意 20212021 和 20212021 有大于 11 的公约数,因此在计算的时候要算一个。如果一个整数 gg 能同时整除整数 AA 和 BB,则称 gg 是 AA 和 BB 的公约数。例如:4343 是 8686 和 20212021 的公约数。a=10,b=5,a%b=0 b就是最大公约数。这道题是一道非常经典的求最大公约数的题;

2024-11-04 09:46:39 274

原创 数据结构--链表与顺序表经典选择题

若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删。、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个。对于顺序存储的线性表,访问结点和删除结点的时间复杂度为。.线性表采用顺序存储,必须占用一片连续的存储单元。.线性表采用链接存储,不必占用一片连续的存储单元。.线性表采用顺序存储,便于进行插入和删除操作。D.线性表采用链接存储,便于插入和删除操作。.下面关于线性表的叙述中,错误的是哪一个。的线性表采用顺序存储结构,在其第。4、设一个链表最常用的操作是。

2024-11-03 11:58:24 585

原创 蓝桥杯刷题6

已知不相同的数不超过 104104个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。输出 m 行( m 为 n 个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。其中,1≤n≤2×10^5,每个数均不超过1.5≤10^9 1≤n≤2×10^5,每个数均不超过1.5≤10^9。如果遇到处理两个数据相关,要使用map,(可以放数字,小数,字符串),它会让你的数据变得简洁高效。

2024-10-29 16:39:56 388

原创 蓝桥杯刷题5--程序只能通过部分测试,该如何修改???

第3814题:精打细算的小蓝。

2024-10-29 15:56:18 547

原创 蓝桥杯刷题4

1371:回文判断。

2024-10-28 09:45:06 250

原创 蓝桥杯刷题3

前 1010 个被报出的数是:20,24,40,48,60,72,80,96,100,12020,24,40,48,60,72,80,96,100,120。本题的结果为一 个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。输入一行包含三个整数 a,b,ca,b,c,表示三角形三边的长度,相邻整数之间用一个空格分隔。给定一个三角形的三条边的长度 a,b,ca,b,c,请问这个三角形是不是一个直角三角形。十进制整数 22 在十进制中是 11 位数,在二进制中对应 1010 ,是 22 位数。

2024-10-25 21:36:08 288

原创 蓝桥杯刷题2

1.第502题:成绩统计。

2024-10-21 11:27:45 1227

原创 单链表---逆置链表

方法一(利用三个指针)方法二(重点):头插法。

2024-10-15 15:57:50 310

原创 数据结构---单链表

3.删除第一个val的值(需要找前驱)

2024-10-15 15:40:16 203

原创 蓝桥杯刷题1

例如:20212021 年 66 月 55 日的各位数字之和为 2+0+2+1+6+5=162+0+2+1+6+5=16,而 1616 是一个完全平方数,它是 44 的平方。例如:20212021 年 66 月 2323 日的各位数字之和为 2+0+2+1+6+2+3=162+0+2+1+6+2+3=16,是一个完全平方数。小蓝准备用这些卡片来拼一些数,他想从 11 开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。如果一个日期中年月日的各位数字之和是完全平方数,则称为一个完全日期。

2024-10-15 15:18:12 380

原创 阿里巴巴进制类题目。

(1)两边同时 %n:(20n^4+49n^3+88n^2+71n+42)%n=n^5+5n^4+2n^2+n+6 对0次项。1.假设在n进制下,下面的等式成立,567*456=150216,n的值是( D )。即(71+42/n)%n=1 计算后n=18,D正好符合条件。2. 假设在n进制下,下面的等式成立:15*4=112,n的值是( A )。(20n^4 % n == 0 ,即带n的项对%n结果都是0)①考虑个位(5*4)%n=2 A正好符合条件。

2024-04-16 21:19:06 234

原创 通过交换函数学习指针(关于Swap交换)

悬挂指针,野指针,是随机值,没有初始化,没有指向一个合法的地址,不能访问你没有访问权限的地址。总结:调用函数通过形参想修改实参的值。定义在函数内部的变量。

2024-04-15 23:26:55 382 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除