自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode算法题之记忆化搜索总结

记忆化搜索,可以理解为带备忘录的递归,方便进行剪枝,是一种以空间换时间的策略。

2024-01-07 12:03:22 456

原创 leetcode算法题之floodfill算法---深搜(dfs)

这个系列就到处结束啦,希望对大家有所帮助!

2024-01-07 09:49:36 637

原创 leetcode算法题之递归--综合练习(二)

【代码】leetcode算法题之递归--综合练习(二)

2024-01-06 19:11:31 531

原创 leetcode算法题之递归--综合练习(一)

此专题对我们之前所学的关于递归的内容进行一个整合,大家可以自行练习,提升自己的编码能力。

2024-01-06 15:46:35 573

原创 leetcode算法题之递归--深度优先搜索总结

【代码】leetcode算法题之递归--深度优先搜索总结。

2024-01-06 10:29:28 467

原创 leetcode算法题之递归--二叉树中的深搜总结

递归的本质是找重复的子问题。

2024-01-02 11:42:27 428

原创 leetcode递归算法题总结

递归本质是找重复的子问题。

2024-01-01 11:23:47 503

原创 leetcode贪心算法题总结(三)

这个系列到此就全部完啦,希望对您有所帮助,有什么不懂的可以直接私信我,我会为大家进行依次解答呀!

2023-12-29 19:49:24 746

原创 leetcode贪心算法题总结(二)

【代码】leetcode贪心算法题总结(二)

2023-12-29 16:26:53 633

原创 leetcode贪心算法题总结(一)

此系列分三章来记录leetcode的有关贪心算法题解,题目我都会给出具体实现代码,如果看不懂的可以后台私信我。

2023-12-27 11:29:23 1083

原创 拓扑排序相关leetcode算法题

【代码】拓扑排序相关leetcode算法题。

2023-12-25 15:02:48 309

原创 BFS解决多源最短路相关leetcode算法题

【代码】BFS解决多源最短路相关leetcode算法题。

2023-12-25 13:50:04 546

原创 BFS解决单源最短路相关leetcode算法题

【代码】BFS解决单源最短路相关leetcode算法题。

2023-12-25 11:21:46 448

原创 BFS解决FloodFill算法相关leetcode算法题

【代码】BFS解决FloodFill算法相关leetcode算法题。

2023-12-24 11:22:16 444

原创 leetcode算法之队列

leetcode算法之队列

2023-12-06 12:35:52 446

原创 leetcode算法之栈

【代码】leetcode算法之栈。

2023-12-04 23:50:37 484

原创 leetcode算法之字符串

【代码】leetcode算法之字符串。

2023-11-28 20:11:32 570

原创 Leetcode算法之哈希表

Leetcode算法之哈希表。

2023-11-28 16:25:51 502

原创 leetcode算法之链表

【代码】leetcode算法之链表。

2023-11-26 10:29:33 674

原创 leetcode算法之分治-归并

【代码】leetcode算法之分治-归并。

2023-11-21 14:34:04 269

原创 leetcode算法之分治-快排

【代码】leetcode算法之分治-快排。

2023-11-19 23:30:35 274

原创 leetcode算法之位运算

【代码】leetcode算法之位运算。

2023-11-17 11:25:12 170

原创 leetcode算法之前缀和

【代码】leetcode算法之前缀和。

2023-11-17 10:06:06 226

原创 leetcode二分查找算法题

一起学习,一起进步

2023-11-14 23:30:23 82

原创 Linux之基础IO(1)

种一棵树最好的时间是十年前,其次是现在!

2023-04-07 21:49:35 237 1

原创 Linux之进程替换

fork()之后,父子各自执行父进程代码的一部分,父子代码共享,数据写时拷贝各自一份,如果子进程想就执行一个全新的进程呢?进程的程序替换,来完成这个功能。程序替换:是通过特定的接口,加载磁盘上的一个权限的程序(代码和数据),加载到进程的地址空间中。用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exex函数以执行另外的一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新进程替换,从新程序的启动例程开始执行。

2023-03-29 21:52:50 434

原创 Linux之进程等待

另外,一旦一个进程变成僵尸状态,那就刀枪不入,“杀人不咋眼”的kill -9也无能为力,因为谁也没有办法杀死一个已经死去的进程。如果子进程已经返回,调用wait/waitpid后,wait/waitpid会立即返回,并且释放资源,获得子进程的退出信息。最后,父进程派给子进程的任务完成的如何,我们需要知道,如,子进程运行完成,结果对还是不对或者是否正常退出。之前讲过,子进程退出,父进程如果不管不顾,就可能造成僵尸进程的问题,进而造成内存泄漏。父进程通过进程等待的方式,回收子进程的资源,获取子进程退出信息。

2023-03-15 12:05:23 287

原创 Linux之进程终止

0表示success,非0表示允许的结果不正确,非零值有无数个,不同的非零值就可以标识不同的错误原因,给我们的程序在运行结束之后,结果不正确,方便定位错误的原因。***比如程序内出现数组越界啦,野指针啦等,程序直接崩溃,此时它们的退出码是无效的,没有执行return语句。我们发现这个缓冲区一定不在操作系统内部中,如果在_exit函数应该也能将数据刷新出来,但它不能,exit函数可以,所以,缓冲区是C标准库的,C标准库给我们维护的。main函数的返回值?return语句,就是终止进程的,return退出码。

2023-03-15 08:47:37 436

原创 Linux之进程创建

创建一个子进程,则系统里面多了一个进程,进程 = 内核数据结构+进程代码和数据,进程的代码和数据一般是从你的C/C++程序中来,也就是从磁盘而来。新进程叫做子进程,而原进程叫做父进程。创建子进程,给子进程分配对应的内核数据结构,必须子进程独有的,因为进程具有独立性!理论上,子进程也要有自己的代码和和数据,虽然父子进程给自调度,各自修改EIP,但是已经不重要了,因为子进程已经认为自己的EIP,就是fork之后的代码。从结果可以看出,fork之前,父进程独立执行,fork之后,父子进程两个执行流分别执行。

2023-03-14 09:12:49 511

原创 虚拟地址空间

我们将我们的代码和数据加载到内存中,加载本质是创建进程,那么是不是非得立马把所有的程序的代码和数据加载到内存中,并创建内核数据结构和建立相关映射关系?答案是否定的。在最极端的情况下,甚至只有内核结构(task_struct结构体、地址空间、页表,)被创建出来了,映射关系一个都没有。此时进程的状态就叫做新建状态。当真正调度这个进程的时候,才将进程的代码和数据加载到内存中,设置好映射关系。理论上,可以实现对进程的分批加载,那是不是可以分批换出呢?当然可以。

2023-03-01 20:05:50 721 1

原创 二叉树超级经典OJ题

通过题目意思和输入输出的方式,我们可以使用队列,先入队列的先出队列,当前一层的节点都出队列时,下一层的的节点都进队列,此时下一层的节点个数即是levelSzie = q.size(),通过levelSize控制一层一层出,使用vector对出队列的节点进行保存即可。给你二叉树的根节点root,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。可以知道:一个是它左子树的节点,一个是它右子树的节点,那么它就是最近公共祖先。思路一:时间复杂度:O(H*N),H是树的高度。

2023-01-25 23:41:51 863 1

原创 Linux之孤儿进程、进程优先级、环境变量

每个程序都会收到一张环境表,环境表是一个字符指针数组,每个指针指向一个以’\0’结尾的环境变量字符串。

2023-01-01 22:13:52 491

原创 Linux进程状态

创建成功一个子进程后,操作系统会在内存中生成一个描述它的属性的task_struct结构体,它的内部属性,要以父进程为模板,当在fork函数内部子进程已经创建成功后,fork函数后面的代码都是父子进程所共享的,比如这里的return id,每个进程得到它们自己的id返回值,继续下面的代码执行。这里的+号表示此进程是一个前台进程,当它在运行的时候,此时再在bash上输入命令如ls,pwd等会发现无效,此时此进程占用了整个bash。为了弄明白正在运行的进程是什么意思,我们需要知道进程的不同状态。

2022-12-29 11:57:14 344 1

原创 linux进程概念

课本概念:程序的一个执行实例,正在执行的一个程序的。内核观点:担当分配系统资源(CPU时间,内存)的实体。

2022-12-25 15:35:15 719

原创 C++之多态(中篇)(最全总结)

在虚函数的后面写上 =0,则这个函数为纯虚函数,包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象。派生类继承后也不能实例化出对象,只有重写纯虚函数,派生类才能实例化出对象。纯虚函数规范了派生类必须重写,另外纯虚函数更体现出了接口继承。public :};public :cout

2022-12-21 11:54:39 437

原创 C++之多态(上篇)(最全总结)

需要声明的,这两篇文章(C++之多态(上下篇))的运行环境都是在vs2013下的x86程序中,涉及的指针都是4bytes。如果要在其他平台下,部分代码需要改动。比如:如果是x64程序,则需要考虑指针是8bytes问题等等。虚函数:即被virtual修饰的类成员函数称为虚函数。ps: 普通函数不能用virtual修饰,会报错。public :cout

2022-12-19 23:40:34 350

原创 C++中的继承

继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性基础上进行扩展,增加功能,这样产生新的类称为派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类层次的复用。public ://姓名 int _age = 18;//年龄 };//学号 };//工号 };s . _name = "张三";t . _name = "赵老师";return 0;}

2022-12-18 22:37:33 285

原创 Linux之vim编辑器

编辑/插入模式:你是不是遇到过用vim打开一个文件后,想直接开始写代码却写不了而产生一大堆问号?这说明此刻还不在编辑/插入模式。vim打开一个文件后,默认进去的是命令模式,输入i,进入到编辑/插入模式,此时可以开始编写你的代码了。底行模式:同样,在命令模式输入shift + :(即 :),跳转到底行模式。底行模式的常见命令:w:保存 q:退出 w!: 强制保存 q!: 强制退出 w!q!:强制保存并退出。

2022-10-02 14:30:25 872

原创 Linux权限总结

目录的可执行权限是表示你可否在目录下执行命令如果目录没有x权限,则无法对目录执行任何命令,甚至无法cd进入目录,即使目录仍然有 -r读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)而如果目录具有x权限,但没有 r 权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限。所在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。linux权限的总结就到这里了,我们下次再见!!!

2022-09-28 22:02:08 1073

原创 C++之string类的使用

C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,在OJ中,有关字符串的题目基本以string类的形式出现,而且在常规工作中,为了简单、方便、快捷,基本。但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可。都使用string类,很少有人去使用C库中的字符串操作函数。replace替换,需要挪动数据,效率较低,一般不建议使用。功能:可以在任意位置插入字符或字符串。功能:为字符串赋值,替代当前字符串。

2022-09-04 15:35:57 626

空空如也

空空如也

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

TA关注的人

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