- 博客(10)
- 收藏
- 关注
原创 力扣刷题实战:随机链表的赋值
此题的关键在于实现random的指向,由于原链表的random指向是随机的,所以对应的复制链表直接的random的实现是较为困难的,那么是否有方法可以通过参考原链表的random指向来实现复制链表random指向?有种方法是可以通过map容器将原链表结点与复制链表的结点紧密联系起来,这样通过原链表的random指向就可知道对应复制链表的random指向的相对位置。对应结点(即原链表结点的random指向的结点的复制链表对应结点),这样就可实现复制链表random的指向。
2025-03-09 22:48:02
188
原创 力扣刷题实战:盛最多水的容器
假设左指针为left,右指针为right,左指针指向的数为x,右指针指向的数为y,固定左指针,设x<y,则容量为v=(right-left)*min(x,y)=(right-left)*x,假设右指针左移,若右指针指向的数y1>x,则v1=(right-1-left)*min(x,y1)=(right-1-left)*x,显然v1<v,若指向的y1<x,则v2=(right-1-left)*min(x,y1)=(right-1-left)*y1,v2<v,同理固定右指针,对左指针右移,也是如此。
2025-03-06 19:40:26
141
原创 力扣刷题实战:快乐数
通过阅读题目,可知对于一个正整数有两种情况,一种为最终替换为1,不断循环;一种为永远不为1,不断循环,那么针对这两种情况,循环的停止条件应该设置为什么。此题可使用快慢指针,令快指针每次走两步,慢指针每次走一步,在循环中,快慢指针一定会最终相遇,所以可设置循环的停止条件为快慢指针相等。在做此题前,我们应该了解一个概念。
2025-03-04 21:34:53
188
原创 力扣刷题实战:复写零
因为可能是后指针还未遍历的数组元素被前指针覆盖掉,所以若从后向前使用前后指针,则可避免覆盖错误,但是从后向前使用前后指针,那么应该从哪个位置开始进行从后向前的前后指针操作,针对此问题,我们可以先从前向后使用前后指针对最后一个要复写的数进行定位,找到后,则再从后向前使用前后指针,进行复写操作。1.2.在pre向前移动后,注意此处不能先cur++,要先判断是否pre到达边界,若到达边界,则找到了最后一个要复写的数的位置cur,若pre未到达边界,则再cur++,否则会找到错误的cur。2.处理一下边界问题。
2025-03-04 20:46:55
166
原创 力扣刷题实战:移动零
在中间某状态时,此时数组是被分为三块区域的,在cur之前的区域是被遍历的区域,cur之后是还未进行遍历的区域,所以在[0,pre]是非0区域,[pre+1,cur-1]是0区域,[cur,n-1]是还未遍历的区域,当cur遍历完整个数组时,此时整个数组都是是被遍历的区域,所以此时被分为了[0,pre]的非0区域,[pre+1,cur-1]的0区域。1.定义快慢指针,cur=0,pre=-1,快指针遍历数组,慢指针标记数组。移动到数组的末尾,同时保持非零元素的相对顺序。leetcode题目:移动零。
2025-03-04 18:08:20
298
原创 数据库的约束
注:若将一个表中的自增的这几行删除,再次添加数据,则自增从被删除的下一个数字开始,不会再从一开始自增,因为自增的数字被使用了,另外在自增时,若手动设置一个标识符(注意设置在自增数字之后的数字,若下述图设置1标识符,则自增是从6开始自增),则之后的自增从手动标识符开始向后自增。在子表中输入/修改关于被外键联系的列的数据时,首先会判断所操作的被外键联系的列的数据是否在父表中被联系的该列中存在,若存在,则可成功进行操作,否则报错,对于输入/修改没被外键联系的列的数据时,则无影响。
2024-10-09 22:15:47
1613
原创 表中数据的操作(二)
若表中的数据量很大时,因为mysql是客户端--服务器结构的数据库,一次全部查询一方面会占据大量的服务器资源,另一方面占据大量网络资源,从而导致当其他客户端访问服务器时,可能会导致服务器无法响应等问题发生,进而引出分页查询的方法,通过分为多次,一次控制查询一定数量的行来减少服务器压力。因为在条件查询时,先遍历每行,把每行的数据带入条件进行判断,若符合条件,则成功筛选出来放到临时表中,而在临时表中方才进行设置别名操作,所以在进行条件判断时,还未进行别名操作,所以条件判断时无法识别别名。
2024-10-05 02:39:22
1693
原创 数据库中表的创建及对表中数据的操作(一)
在数据库中储存的数据,是由一个个的数据集的形式储存的,数据储存在数据集中,而数据集就是表,所以在mysql中有多个数据库,而每个数据库中又有多个表(数据集),每个表中储存着许多数据,表中储存着数据,意味着数据要存入表中,那么什么类型的数据可存入表中?DECIMAL(M,D) 该精度比DOUBLE(M,D)更高,浮点数在电脑中是以二进制的形式储存的,所以储存的值是有一定误差的,使用DECIMAL(M,D) 可使数据更加精确。BIT(M) 储存二进制数,M表示所要储存的位数,M的范围为1--64。
2024-10-04 23:08:00
1648
1
原创 数据库中库的创建
已知,在mysql中有多个数据库,而数据库的功能是用于组织/保存/管理数据的,所以通过use关键字可以指定所要使用的库,进而对指定的库进行操作,数据是在库中储存的,是储存在库中的表中的,所以对指定的库进行操作后,在对其中的表操作,进而操作数据。//注:在创建库时,在mysql中创建库时库名必须是唯一的,若已经创建了一个库,再创建相同的库时,会报错(上述已创建stn名字的库,再创建stn库,报错)进而引出查询库的操作?方框中即为mysql中的所有库,注:stn是我们创建的库,其余几个皆为mysql自带的库。
2024-10-04 20:06:19
341
原创 数据库的概念
常见的关系型数据库(Oracle,DB2,MySQL,SQL Server等),非关系型数据库(redis,MongoDB,HBase等),关系型数据库,是用‘表’这样的结构来组织数据的(此处的表形如excel,有很多行很多列;每一行的列数,列的含义都需要匹配)关系型数据库,对数据的格式的要求比较高;mysql的运行,已知mysql是“客户端-服务器”结构的软件,我们使用时打开的程序是客户端,通过SQL语句,进而在客户端上发起请求,进而mysql服务器接收请求,在储存数据的硬盘上管理数据,发出响应。
2024-10-04 18:57:12
397
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人