自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言:3.31

上面这个有关“头节点”的理解也没错,但这道题的关键在于:被视为“头节点”的那个节点是在变化的,而非静止不动的那一个头节点,可以类比“顺序表的循环队列”也需要一个空位来标志着队满。解析:任何408真题但凡涉及链表的一定都会需要定义一个头节点,很容易被“初始时队列为空”这个条件迷惑,实际上只有一个头节点也是为空。不需要判断是否为头节点,因为不带头节点的链表栈顶会初始化为NULL;1、二叉树层次建树,必须用到“辅助队列”事实上:将顺序表的直接类比过来就行了。

2025-03-31 21:18:04 227

原创 3.29:数据结构-绪论&线性表-上

同时带有队头指针与队尾指针的单链表,头指针指向队头节点,尾指针指向队尾节点,既:单链表的最后一个节点。数一的话会求斐波那契的通项,其中一项就是他的复杂度, O (根号5-1)/2的n次方;注意一下:以上第一个结构体会报错,原因是省略了 LinkNode,因为内部要用。注意:可能会考究竟执行了多少次数,而非只是简单的求出时间复杂度。此题关键在于求和公式的转化,类型为:线性循环嵌套非线性循环。(1)例题1,与2022年的真题对比着写。(2)例题2:非线性循环嵌套线性循环。(2)队列的链式存储,

2025-03-31 00:07:45 355

原创 3.28:英语+数据结构

偶数个节点post走到倒数第二个节点时(此时不可以再走两步),pre同样来到中间节点,L2的第一个节点依旧是pre->next;先令r->next=NULL,s->next=r,之后r、s、t三个指针分别向后移动一个,r=s,s=t,t=t->next;前面的链表为L,后面的链表赋予一个新的头节点L2,将L2原地逆置,再将L与L2进行合并;指针T是链表的倒数第二个节点,T1是根据T的next求出的链表最后一个节点,既:插入节点;设定三个指针r,s,t,分别指向链表L2的第一个节点、第二个节点与第三个节点;

2025-03-29 17:51:35 394

原创 英语+数据结构:3.26

main()函数中LinkList L,其实相当于定义了一个空指针,并没有赋予其空间,若是在Insert函数中不使用“&”则会报错,使用“&”则会成功编译。首先明确:“往第i个位置插入元素”=“新插入的元素就是第i个位置的元素”,而插入元素的首要就要找到被插入位置的前一个元素,即:第i-1个位置的元素。删除与插入类似,关键都是要找到“第i-1个位置”,即:被插入/删除元素的前一个位置。primary:意思是主要的,而不是最初的。verbal:口头的、言辞的。visual:视觉的、视力的。

2025-03-27 23:34:12 220

原创 英语+C语言:3.24

空间复杂度包括:算法的空间复杂度与数据结构的空间复杂度,算法的空间复杂度是O(1),只需关注数据结构即可。2023选择题:有一个小坑,查找有两种:顺序查找与折半查找,顺序查找是O(n),折半查找是O(logN);结构体的存储与其他变量相同,若是malloc则是在堆中,其余则在栈中;时间复杂度:O(n) 空间复杂度:O(n)1、算法的五个基本特性:有穷、确定、可行、输入、输出。确定:算法的每一步必须是确定的,而不能有歧义;二、9.4:算法的基本概念与时间复杂度。

2025-03-25 22:34:50 928

原创 英语+c语言:3.23

如果全局变量与局部变量重名,那么就近原则:实际获取和修改的值是局部变量的值。2、整个结构体占用的字节数%最大类型变量的字节数等于0;1、每个类型的变量必须对齐:地址x%字节数=0;demographic:人口学的、人口统计数据。inevitable:不可避免的,必然发生的。三、8.3:结构体指针和typedef的使用。outlive:比……vulnerable:脆弱的、易受伤害的。wholesale:批发的、大规模的。局部变量的作用域:离自己最近的花括号。3、可读写数据区、用户栈、运行时堆。

2025-03-23 23:34:52 255

原创 2007年真题:阅读三

in just one generation:在短短一代人的时间里。pink slip:粉色滑动?budget:预算,动词:把……paycheck:工资支票、收入。transform:改变。diagnosis:诊断。count on:依靠。critic:批评家。payment:付款。

2025-03-22 21:24:15 229

原创 王道:3.21

初试别犯“嵌套定义”的错误,不然可能严重扣分。三、6.5:指针与malloc内存动态申请。2、malloc返回的是无类型指针。指针的sizeof是32位的,二、6.3:指针的传递使用场景。四、7.2:函数的声明与调用。1、栈空间与堆空间差异。

2025-03-21 22:33:07 139

原创 小三:3.20:王道督学营

2.2:自己写:f的值是2.0。错,答案并没有.0,而是2。一、初级阶段课件的练习题。

2025-03-20 21:39:27 98

原创 备战机试:3.18

很容易想到双指针,让长度更长的链表先前进几个长度,关键在于:通过swap函数令lenA是更长的长度,curA是更长长度的链表的头指针。跟前面的某道题还挺像的,但是count加的时候可以进行优化。swap函数的头文件:algorithm。什么gp滑动窗口,我表示暴力解,怎样?

2025-03-18 21:26:40 197

原创 备战机试:3.17

2、sort函数的自定义排序(前面的某一篇优快云上同样写了)前提是一定要排序,不然三指针移动的时候不会正确。值为int类型下的默认值为0。1、有关map的默认值。

2025-03-17 21:52:09 191

原创 备战傻鸟机试:3.16

绝对值函数为:abs,头文件:cmath。3、对链表进行插入排序(没看完)1、最接近的三数之和。1、最接近的三数之和。

2025-03-16 21:41:48 70

原创 外刊阅读:大脑中的“小蓝点”如何调节你的睡眠

far-fetched:fetch是去拿、去取,远的+去拿=牵强的、不切实际的。long:1、长的(简单) 2、渴望,long for就是渴望的意思。dimmer:dim是黯淡的,而dimmer就是调整光亮。解释1:管理、监管,这个解释在前面的真题中还挺常见的。nervous:1、焦虑的(常见) 2、神经系统的。解释2:调整、调节,这个是今天的主要。整篇文章的关键词:regulate。arousal:唤醒、激活。traffic:传输、交换。dampen:削弱、抑制。insomnia:失眠。

2025-03-16 16:36:21 298

原创 备战机试:3.14

这道题特殊的点在于从后往前进行遍历,遍历顺序不一致,其次当i+questions[i][1]+1>n-1时,应该就是max(dp[n+1],questions[i][0]),当然还有一些long long与int类型的转换,注意区分。不理解的地方:我个人感觉最后应该是再用个sort排序,但是它直接输出dp[n-1],为什么能通过。这个是不连续的情况,记得与连续的情况做对比。还有初始化的时候也要注意。一、3.14号写的题。

2025-03-14 22:02:09 110

原创 备战机试:3.12

在下面的代码上被困了,首先Max的初始值一定要是1,因为执行这条代码的前提一定是当前(x,y)处已经是0,其次因为for循环内部是(x,y)点的临近8个区域,因此一定是相加,并不需要求最大值。一、刷题中遇见的困难。

2025-03-12 21:55:28 161

原创 备战机考:3.11

并且的并且:first是访问第一个坐标,second是第二个坐标。1、pair<int,int>用于保存二维坐标。ps:以前的某个csdn上整理过。并且:{x,y}要用大括号括起来。二、sort函数的头文件与格式。一、2025.3.11刷的题。

2025-03-11 21:51:16 236

原创 备战机考:组合、

返回值: string,包含s中从pos开始的len个字符的拷贝(pos的默认值是0,len的默认值是s.size() - pos,即不加参数会默认拷贝整个s)发现是for循环中已经有“i++”的前提下,又调用了i++,会导致递归返回后的i+2;所以:i++不只是赋值,还真的改变了i的值;2、并查集:we are a team。一、有关for循环中i++的讨论。1、回溯的组合两道,非重复的没写。二、2025.3.10做的题目。3、分割回文串(只听了听)4、工作安排(01背包)5、长方形中的正方形。

2025-03-10 21:13:45 154

原创 备战机考:合并集合(并查集)

节点i的S[i]存储的应该最终是其最开始的根节点,而非直系父亲,因此需要路径压缩;1、想用cin.getline()读取m行的指令要求,但是其实不用;1、查找操作:查找某个元素的根节点,并进行路径压缩。2、用数组S来储存节点i的根节点为S[i]将节点u挂在v下面,而非a与b之间的操作;4、判断节点a和节点b是否属于同一个集合。2、对于整个并查集的操作不是很熟悉。(因为是要判断是否属于同一个集合)

2025-03-08 23:16:18 154

原创 备考机试:Prim算法求最小生成树

首先图是无向图,有自环且有重边,边权可能是负值。一般在图的算法题中,要初始化为最大值:INT_MAX(int_max);因为是无向图,所以用邻接矩阵直接分上下记录即可,在具体走流程时用min函数比较。1、第一次写错误的点:更新minDist数组时没有和原来的minDist数组比较。1、顶点v->顶点w的权值为x1,顶点v->顶点w的权值为x2;2、顶点v->顶点w的权值为x1,顶点w->顶点v的权值为x2;二、有关#include<climits>头文件。这种情况下就要留权值更小的那个;

2025-03-07 19:58:37 312

原创 编程第一天:二叉树专题

像我这种基础不好的菜鸡,就会觉得结构体里为啥要定义构造函数,其实c++里类跟结构体可以视为一类。构造函数是赋值构造函数,可以写的更简单,但是菜鸡本人不习惯看那种写法。PS:被妈妈建议学复试的机试内容了,加油!一、二叉树定义(数据结构)

2025-02-26 21:38:24 106

原创 第七天:项目继续

使用一个工作队列完全解除了主线程和工作线程的耦合关系:主线程往工作队列中插入任务,工作线程通过竞争来取得任务并执行它。所以在threadpool.h头文件中所有创建的均为子线程,也就是为啥每一个线程都跟worker函数绑定了。问题:没懂选择是actor函数pro的时候的区别。当一个进程创建了多线程,则该进程本身就会退化成主线程,其余被创建的均为子线程;状态是0的时候,表示读;一个是设置了状态,另一个并没有设置状态。1、前置知识:区别主线程与子线程。(2)主线程的功能实现函数。2、该项目本身的线程池。

2025-02-24 22:07:21 132

原创 第七天:C++八股

一直轮询内核数据是否已经准备好了,但是非阻塞I/O只是不等待“内核准备数据的过程”,同样等待“从内核缓冲区复制到用户缓冲区”这个过程。用户程序执行I/O时,内核未把数据准备好,并且未将数据从内核缓冲区复制到用户缓冲区中,阻塞I/O是在这两个过程等待。“内核准备数据”与“数据从内核缓冲区复制到用户缓冲区”这两个过程都不用等待。2、Reactor是非阻塞的同步网络模式,Proactor是异步网络模式。一、多线程这里项目源代码:threadpool.h。所以:阻塞I/O跟非阻塞I/O都是同步I/O。

2025-02-24 20:27:08 149

原创 第六天:C++八股

这样就绪工作就完成了,接下来当某个socket对应的tcp链接有数据来了,就由这个链接对应的文件描述符在红黑树中进行查找,找到这个链接对应的节点。然后就是epoll-wait监听到双向链表中有数据,就去将链表中的节点数据拷贝到用户空间,同时从节点中拿到对应休眠进程的信息,去唤醒这个队列。如果长时间没有事件发生,IO线程将处于空闲状态,这时可以利用IO线程来执行一些额外的任务(利用定时器任务队列来处理超时连接),这就要求非阻塞的poll/epoll能够在无IO事件但有任务到来时能够被唤醒。

2025-02-24 00:25:21 957

原创 第五天:C++八股

eventpoll是一个可以同时监听多个file发生特定event,然后将发生的特定event返回user space(用户态),在用户态下调用此event的回调函数的一种功能,它一个wait可以wait所有注册到这个eventpoll的文件的特定event。项目中搭建了一个半同步/反应堆线程池,其中维护了一个请求队列,线程池中的主线程通过epoll来监听socket,并且将请求队列中的任务分配给线程池中的工作线程,其中工作线程能够处理的任务分为日志输出、定时器处理非活动连接以及处理HTTP请求三种。

2025-02-21 22:20:10 728

原创 最大子矩阵-C++

两个嵌套的循环按列遍历所有可能的子矩阵,外层循环变量i表示子矩阵的起始列,内层循环变量j表示子矩阵的结束列。用数组提前存起来每一个的值,然后每次求只需要:dp[r]-dp[l-1]i与j是上下边界,而一维的最大子序列和给出了左右边界。四、看了网页上的解法更能理解,给出图示,发现传不上来。转化为一维的最大连续子序列和(已写出)。

2025-02-18 21:56:18 227

原创 第四天:C++八股

父类中有一个虚函数A,子类中有一个同名的虚函数A,当通过父类指针new一个子类对象,或者通过父类引用来绑定一个子类对象的时候,若用父类指针来调用这个虚函数,则调用的其实是子类的虚函数。拷⻉基类的虚函数表,如果是多继承,就拷⻉每个有虚函数基类的虚函数表 当然还有⼀个基类的虚函数表和派⽣类⾃身的虚函数表共⽤了⼀个虚函数表,也称为某个基类为派⽣类的主基 类。查看派⽣类中是否有重写基类中的虚函数, 如果有,就替换成已经重写的虚函数地址;查看派⽣类是否有⾃ 身的虚函数,如果有,就追加⾃身的虚函数到⾃身的虚函数表中。

2025-02-18 18:23:00 187

原创 第三天:C++基础

虽然Rectangle类继承了Shape类的所有成员和成员函 数,Shape类的私有成员X,Y也是Rectangle类的私 有成员,但Rectangle类的成员函数SetD( )仍不能直 接访问X,Y,而要通过基类Shape的公有成员函数 SetB( )间接访问。•A的private成员(函数) ,成为B的private成员, 但B的成员函数不能直接访问A的私有成员,它 们仍然是A的private成员,但A是B的一部分。•对于建立它的类,它与private成员的性质相似。

2025-02-17 22:18:26 187

原创 第二天:C++基础知识

任何类外的函数要访问 类的私有成员或函数,必须通过类的公有成员函 数才能间接访问类的私有成员或函数。同一个类无论定义多少个对象,静态成员在整个程序中只有一个,同一个类的不同的对象访问的静态成员是同一个,从而可以在不同对象之间传递信息。类中的私有变量只能通过类自己定义的公有函数访问,但通过类内声明友元函数(加上friend关键字)使得友元函数也可以直接访问私有变量。但赋值(A=B)时不调用复制构造函数,用“引用”充当形参或返回值时,不调用复制构造函数,因为引用是变量的别名而已,本质相同。

2025-02-15 21:39:33 414

原创 C++基础知识回顾

为什么单独强调这个,因为博主写一些题时,会在前部分就终止主程序,但忘了在终止处加上”return 0“,导致了一次调试。PS:受不了了,好困,我去吃火鸡面+煎蛋了,昨天去小红书看OD评价,他们说上交今年会炸,焦虑症好像犯了,早上5点才睡着。与宏定义define类似,编译器将出现函数名的位置用函数体进行替换,省去了真正函数调用的压栈、退栈、跳转时间。周一要去面生命中第一个技术面了,虽然是俩小卡拉米公司,哈哈哈哈,写一下我对于C++一些没有掌握的基础知识点。4、C++面向对象:继承、封装、多态。

2025-02-14 23:26:10 171

原创 while(cin)的终止与结构体排序

cin读取函数是从内核缓冲区中读取,遇到文件结束符EOF时会返回0,否则返回cin对象,而Windows下输入"Ctrl + Z"表示读到文件末尾,可在终端结束输入。若想读取到正确的输入,则需要在cin以后,先cin.get(),将滞留的换行符读取,再调用cin.getline(),读入一行内容。内核会将回车转化为换行符’\n‘存储在内核缓冲区内,cin从缓冲区中读取A后,换行符还留在缓冲区中。cin在输入时如果遇见换行符\n会直接跳过,但若是cin>>A,在键盘上输入A后,再输入回车。

2025-02-13 21:34:58 284

原创 sort函数对字符串数组排序

博主本人先想投机取巧,因为string类型的值末尾都隐含了一个’\0’作为字符串末尾,所以想直接将最末尾的单个字符改为’\0‘,经过VS编译输出以后是可以输出截取过的子字符串,但长度其实并未改变,所以:并不能直接修改。compare函数解释:当a与b长度不等时,按照长度递减的顺序排列;否则当a,b长度一致时,按照默认的字典顺序排列。substr(int A,int B):A是提取子字符串的起始位置,B是要提取的长度。碎碎念:感觉这么多天的刷题也算是有了代码能力的进步!一、sort函数的默认排序:字典顺序。

2025-02-12 16:52:09 297

原创 精准核酸检测(C++)

getline(A,B,C):A是输入输出流,可以为cin或istringstream;C是在哪个字符处停止,默认为‘\n’,也就是换行符;在VS运行中,可以从键盘中输入多于当前代码的字符,但并不会在运行窗口体现多余输入值;婕婕天帝同学在刷OD题库时,遇见了输入包含逗号的情况,查阅了一些博主的代码,他们都是用上面两个函数与sstream的头文件使用的。并不需要额外判断是否输入了一整行,因为换行符也被cin.get()读取了。而接下来运行下一行输入时,上次多余的字符直接显示在了运行窗口内。

2025-02-11 17:58:42 365

空空如也

空空如也

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

TA关注的人

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