- 博客(61)
- 收藏
- 关注
原创 归并排序应用——剑指 Offer 51. 数组中的逆序对
由于right数组已经遍历完,所以循环停止,再次判断两个数组是否存在数4.递归展开图
2022-12-09 11:45:40
671
66
原创 linux权限详解
假设有两个组 ,组A和组B,两个组是相互竞争的关系,一起做一个任务,而c为组A中的成员,c做完任务,c即。第三个6对应other, 以二进制表示为: 110 读为真,写为真,执行为假。第三个0对应other, 以二进制表示为: 000 读为假,写为假,执行为假。第二个6对应所属组,以二进制表示为: 110 读为真,写为真,执行为假。第一个0对应拥有者,以二进制表示为: 000 读为假,写为假,执行为假。第二个0对应所属组,以二进制表示为: 000 读为假,写为假,执行为假。
2022-11-30 19:43:29
1243
92
原创 二叉树模板套题——相同的树的应用
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。输出:true 示例 2: 输入:p = [1,2], q = [1,null,2] 输出:false 示例 3: 输入:p =二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。因为对称二叉树主要看的是根的左子树与右子树之间的差别,所以把左子树与右子树单独表示出来。第一棵树根的左子树的值与第二颗树的右子树的值进行比较。第一棵树根的右子树的值与第二颗树的左子树的值进行比较。也可以看做它自身的一棵子树。
2022-11-28 12:40:03
515
29
原创 linux的重定向与xshell原理
假设你叫张三,你找到了一份很好的工作,你的村长父亲非常高兴,可如今还没有女朋友, 你的村长父亲问你有没有相中的,你说你喜欢邻居如花,但是。王婆跟你说如花没有相中你后,你依旧没有放弃,想要王婆再尝试下,王婆说不过你,更碍于你的村长父亲,王婆只能再次前去如花家,但是还没等进去就看见了。于是王婆就找到了如花,说你长的挺精神的,并且还有一份不错的工作,让如花考虑一下,如花。找王婆帮你传递信息,王婆来了后,问你喜欢相中谁,你一口确定就相中了如花,结论:显示器输出的信息中,有正确的,也有错误的,
2022-11-25 16:52:12
875
48
原创 linux基本指令(下)
再次使用vim ,将888.txt文件内容进行修改,使其拥有重复的1111 、2222、3333。此时使用 zip -r 将test 压缩成 test .zip的压缩包后,再剪切到my目录中打开。在test的所处目录中,使用unzip -d 将test.zip 压缩包传入到6.6中,把相邻的一样的文本,压缩只剩下一个 去重后,只剩下 1111 2222 3333。这里使用zip 对test目录进行打包后,会出现 test.zip的压缩包。将 test的压缩包 test.tgz ,解包到6.6目录中。
2022-11-23 12:14:20
776
72
原创 堆排序+TOPK问题
因为 向上调整算法的时间复杂度为O(NlogN) ,而向下调整算法的时间复杂度为 O(N)所以使用向下调整算法建堆更好。
2022-11-22 13:44:19
509
74
原创 堆 (带图详解)
如果有一个关键码的集合K = { , , ,…, },把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中,并满足: = ) i = 0,1,所以要从倒数第二层开始调整。
2022-11-19 10:50:54
725
70
原创 linux的基本指令(中)
创建一个 test.txt的文件 ,将1-1000带有编号的hello world 重定向到 test.txt中。此时分别打印 file.txt 文件与 file.txt.bak文件发现 都可以打印出 hello world。将 /root/9.9/lesson1 中的 file.txt 文件移动到 /root/9.9中。Y代表 年,m代表月,d代表日,H代表小时,M代表分钟,S代表秒。将file.txt 文件拷贝到 file.txt.bak文件中。将 file.txt 文件拷贝到 touch目录中。
2022-11-16 21:13:54
4103
92
原创 linux基本指令(上)
使用 cd ~ 后 ,使目录 从 /root/9.9/lesson2/dir 到 /root目录中。在 根目录root下的9.9目录中,有一个666.txt的文件 ,一个 lesson2的目录。我们不难发现 ,上面为空的file.txt文件 与 下面有内容的file.txt文件。此时我们发现,使用cd …在 /root/9.9目录下,通过 cd . . 不停的返回上一级目录 ,首先 ,处于 root下的 9.9目录下的 lesson2目录。cd .前后目录没有变化,依旧在root下的9.9目录上。
2022-11-10 10:42:04
2992
104
原创 力扣刷题链表需要调试?一个简单的调试器帮你解决苦恼
本人在刷链表题时,由于是新手,所以老是过不去,需要调试,力扣会员开不起,在VS自己创建一个链表太麻烦 ,所以就有了今天这个。
2022-11-04 15:34:33
520
84
原创 linux调试器——gdb
这里假设函数是计算1到100的和,结果我们只有1到99的和,所以调试寻找哪里错了。输入两次 n后,第十五行语句已经执行完,光标指向第十六行,但第十五行处是一个函数,如果没有创建就会默认创建一个mytest.c文件,并进入vim编辑器。如果没有创建就会默认创建一个mytest.c文件,并进入vim编辑器。,使光标处于for循环处,随着光标向下移,sum和i也随之改变。光标刚开始在第6行的for循环处,until后直接跳出循环。,发现会报错,不是Debug不可以进入调试。——运行,遇到断点就会停止。
2022-10-17 08:04:18
365
58
原创 使用linux上传代码到gitee
说明并没有传过,当前.c和.h文件以及makefile都不在git中。使用 git add * 将所有没有添加过去的都添加过去。首先登录gittee,进入仓库,并找到克隆/下载。即将上一级目录的所有.c文件都传入当前目录中。即将上一级目录的所有.h文件都传入当前目录中。这是查看代码的状态,看是否之前传过了。点击下载后,找到HTPPS并复制链接。输入以下两句话,再重新输入。进入你想要传的文件目录中。此时我想要传如上文件内容。出现如下则说明上传成功。
2022-10-14 10:16:28
456
60
原创 linux—— 使用gcc解析程序四个阶段
gcc test1.c -o mybin ——把test.c文件编译形成一个可执行程序mybin。文件中,引入了stdio.h,并将所有头文件都展开以及相关头文件的内容都拷贝进来。这里使用,test.i而不是使用test.c的原因,是因为我们想要。把test.i文件完成编译的临时内容 写入 test.s文件中。文件中,出现了一堆看不懂的东西,实际上是 二进制文件。使用 vim test.c ,进入test.c文件。完成编译阶段,把临时内容放入test.o文件中。进入 test.i文件,同时在。
2022-10-11 16:03:25
877
68
原创 使用云服务器搭建linux环境
首先来说,挑选云服务器,有阿里云,华为云以及腾讯云,博主建议挑选腾讯云(因为价格在这几家最低)由于博主 这边已买过,不方便演示 就举一个例子,按照这个就可以了。当你购买完云服务器后 过一段时间,就会有人专门对你进行回访,1.安装好xshell软件后,打开软件,并点击左上角的+号。只需要把地域和 操作系统选好就可以,最主要是操作系统。发现2核2G1年才65,相比其他几家有点香啊。云服务器的刚才重置的密码 输入进去就可以了。4.点击进去后,只需勾选xshell。3.点击更多,找到重置密码。
2022-09-21 18:29:46
872
98
原创 迷宫最短路径问题
为了让问题简单,假设这是一个n*m的格子迷宫,迷宫每个位置为0或者1,0代表这个位置有障碍物,小青蛙达到不了这个位置;小青蛙初始在(0,0)位置,地下迷宫的出口在(0,m-1)(保证这两个位置都是1,并且保证一定有起点到终点可达的路径),小青蛙在迷宫中水平移动一个单位距离需要消耗1点体力值,向上爬一个单位距离需要消耗3个单位的体力值,向下移动不消耗体力值,当小青蛙的体力值等于0的时候还没有到达出口,小青蛙将无法逃离迷宫。现在需要你帮助小青蛙计算出能否用仅剩的体力值跳出迷宫(即达到(0,m-1)位置)。
2022-09-17 16:22:42
1139
34
原创 百度面试题——迷宫问题(超详细解析)
迷宫问题的本质是图的遍历问题,从起点开始不断四个方向探索,直到走到出口,走的过程借助栈记录走过的路径,栈记录坐标有两个作用,一方面是记录走过的路径,一方面方便走到死路时进行回溯其他的道路。它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的路线。此时的顺序为 (0,0),(1,0),(1,1),(1,2),(2,2)3.在下标为(1,0)时上面为1不能走,下面为0可以走。6.注意此时的下标(1,0) 只能走左,右两个方向,
2022-09-16 15:46:39
1714
44
原创 KMP算法的实现详解
KMP是一种改进的字符串匹配算法,该算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。=p[k]时,一直通过next数组值返回到前面的p所在,但到第一个数依旧p[i]!直到p[i]==p[k],再通过next[i+1]=p[k+1], 确定p[i+1]对应的next下标数。而在if循环中如果不加入j==-1的判断 ,只有 sub[i]==sub[j],则会造成越界。=p[k],则从当前位置继续回退,next[j]=k来表示,不同的 j 对应一个k值,
2022-09-13 19:29:38
333
53
原创 448. 找到所有数组中消失的数字&&238. 除自身以外数组的乘积
给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。以 输入:nums = [4,3,2,7,8,2,3,1]输入:nums = [4,3,2,7,8,2,3,1]输入: nums = [-1,1,0,-3,3]输入: nums = [1,2,3,4]输出: [24,12,8,6]输出: [0,0,9,0,0]
2022-09-09 11:55:14
218
24
原创 八大排序(下)
所以我们先判断下是否符合区间值>1的条件,如果符合,则先将右边的右入栈,再入右边的左 ,其次入左边的右,再入,做左边的左。2.再从左边找比key大的数,找到后将值传给左边pivot所在位置 ,同时pivot指向左边。当左区间的数不够gap所分的数,右区间不存在时,若将左区间拷贝回去会出现随机值。则gap为1时就将 左边区间个数为1 与右边区间个数为1 进行排序。gap为2时就将 左边区间个数为2 与右边区间个数为2 进行排序。gap为4时就将 左边区间个数为4 与右边区间个数为4 进行排序。
2022-09-03 16:38:56
540
46
原创 八大排序 (上)
思想为 :先选定一个整数,把 待排序文件中所有记录分组,所有距离内的记录在同一组中,再对每一组内的记录进行排序,重复分组和排序, 直到=1时结束.把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。直接选择排序 ,无论 数组处于 有序 (最好情况下),还是无序 (最坏情况下) 都需要将整个数组遍历一遍 ,2.预排序会使数组接近有序 ,如gap=1 时 ,就为直接插入排序,时间复杂度为O(N)gap越大,预排完,越不接近有序,
2022-09-02 13:55:24
168
12
原创 二叉树的详细实现(含递归展开图)
一个二叉树,如果每一个层的结点都达到最大值,则这个二叉树就是满二叉树,也就是说如果一个二叉树的层数为k,结点总数为(2^k)-1,则就为满二叉树。对于深度为k的,有n个结点的二叉树,且仅当其每一个结点与深度为k的满二叉树中编号从1到n的结点,称为完全二叉树。一颗二叉树是结点的有限集合,该集合或者为空,或者由一个根节点加上两棵别称为左子树和右子树的二叉树的组成。若规定根节点的层数为1,则深度为h的二叉树的最大结点数是(2^h)-1。若规定根节点的层数为1,具有n个结点的满二叉树的深度h=log N。.....
2022-08-31 16:04:21
488
18
原创 双向带头循环链表的(增删查改)的实现
带头双向循环链表由带哨兵位的头节点和前驱、后继前驱指向它的前一个节点后继指向它的后一个节点但由于本身这个头节点是不储存有效数据的,所以设置将它的前后都指向自己,可以很大程度避免在接口时报错...
2022-08-22 13:19:56
158
20
原创 单链表的(增删查改)的实现
## 1.链表的概念>一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的。## 2.链表优点>1.空间上按需所给空间>2.在头部和中间插入时,不需要挪动数据3.二级指针问题4.单链表的接口实现1.尾插2.尾删6.指定插
2022-08-21 16:51:36
103
12
原创 时间复杂度与空间复杂度
正常来说,操作次数应为o(N^2)+o(2*N)+o(M),但是只保留o(N ^2)如果N为一个很大的数,如100000,加一个常数区别不大,所以就不需要加上了。但若N为一个很大的数 如100000,平方后为10000000000,因为变量的个数为常数个,所以在大O的渐进法中为O(1)最好的情况下为有序,执行n-1次就结束了,即O(N)反之为 1* 2* 2 * 2 * 2 …然后变为第二个数与后面的数比较,比较次数为n-2。操作次数为O(2*N)+10,但只保留O(N)操作次数为 1 +2+3+…
2022-08-19 17:12:38
136
16
原创 二叉树的最大深度&& 平衡二叉树&&二叉树遍历
的博客主页👕参考网站:牛客网💻首发时间:🎞2022年8月18日🎠🎨你的收入跟你的不可替代成正比🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦💬给大家介绍一个求职刷题收割offer的地方👉。...
2022-08-18 21:15:03
72
26
原创 有效的括号&&用队列实现栈&&用栈实现队列&&设计循环队列
在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。本题与上个类似题不同的是,如果设置一个为空的栈,一个不为空的栈,则会发现将数据传给空的栈中时,因为栈时先进后出,所以顺序回颠倒。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。主要思想为将数据传入不为空的队列中,想要找到栈顶元素时就将n-1个元素都转移到空的队列中,返回不为空的队列的最后一个元素即栈顶元素并删除元素,若此时再返回栈顶元素即队列最后一个元素。........
2022-08-13 07:23:39
161
12
原创 链表中倒数第k个节点&&合并两个有序链表&&反转链表&&移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。输入:head = [1,2,6,3,4,5,6], val = 6。输入:l1 = [1,2,4], l2 = [1,3,4]输入:head = [7,7,7,7], val = 7。输入:l1 = [], l2 = [0]输出:[1,1,2,3,4,4]输出:[1,2,3,4,5]..
2022-08-08 10:32:20
76
22
原创 相交链表&&分割链表&& 链表的中间结点&&回文链表
ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = NULL.给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null。给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。给定一个头结点为 head 的非空单链表,返回链表的中间结点。...
2022-08-07 18:13:36
51
8
原创 删除链表中重复的结点&&对链表进行插入排序&&复制带随机指针的链表
构造这个链表的 深拷贝。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。..
2022-08-07 07:54:21
107
18
原创 环形链表&&环形链表 II
给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true。否则,返回 false。* };= NULL) {}这道题的思考还是比较简单的 使用快慢指针。...
2022-08-04 15:20:23
142
12
原创 删除有序数组中的重复项&&数组形式的整数加法&&合并两个有序数组
给你一个升序排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有k个元素,那么nums的前k个元素应该保存最终结果。将最终结果插入nums的前k个位置后返回k。不要使用额外的空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。判题标准。...
2022-07-29 15:37:50
182
10
原创 三子棋(玩家+电脑)
所有代码详解都在代码中#include"game.h"voidinitboard(charboard[row][col],introws,intcols)//初始化{i
2022-07-28 17:10:12
54
6
原创 函数栈帧的创建和销毁
将ebp压栈esp指向ebp这里是主函数里的ebp。因为都是地址所以ebp-8为在ebp地址减去8个字节。.将esp赋值给ebp,ebp与esp都指向ebp。把eax移动到ebp-32(20h为16进制)中。14h以十六进制打印代表20即ebp-20。栈空间的地址使用为先使用高地址,在使用低地址。把ebp-14h(ebp-20)传入eax中。将原来esp所指的地址加8即现在的位置。ebpesp两个寄存器存放的是地址。此时ebp-8存放的是a值为10。......
2022-07-25 12:28:07
142
20
原创 数组中数字出现的次数 II&&消失的数字&&数组中数字出现的次数
这里的oj题全都是接口型也就是只给出一个函数填写即可提示以下是本篇文章正文内容,下面案例可供参考。
2022-07-23 16:54:00
71
18
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅