自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux系统——进程概念(上)

在系统当中查找一个最合适调度的进程的时间复杂度是一个常数,不随着进程增多而导致时间成本增加,称之为进程调度O(1)算法代码块/**/#endif/**/#endif#endif/**/

2026-08-15 20:41:00 930 103

原创 Linux——基础开发工具(下)

到了2005年,开发BitKeeper的商业公司同Linux内核开源社区的合作关系结束,他们回收了Linux内核社区免费使用BitKeeper的权力。版本控制器就是能让我们了解到一个文件的历史,以及它的发展过程的系统。●程序的发布方式有两种,debug模式和release模式,Linux gcc/g++出来的二进制程序,默认是release模式。若监视的表达式在程序运行期间的值发生变化,GDB会暂停程序的执行,并通知使用者。最后的"XXX"表示改动的备注信息,提交的时候应注明提交日志,描述改动的详细内容。

2026-08-15 20:40:44 1155 119

原创 Linux——基础开发工具(上)

●在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。●但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装。●软件包和软件包管理器,就好比“APP”和“应用商店”的关系。●yum(Yellow dog Updater,Modified)是Linux下非常常用的一种包管理器。

2026-07-28 17:30:44 1973 111

原创 Linux——基础指令(下)

●目录的可执行权限是表示你可否在目录下执行命令●若目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录,即使目录仍然有-r读权限●而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限●所有在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

2026-07-28 17:28:57 3797 112

原创 Linux——基础指令(中)

使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。,操作windows不是直接操作windows内核,而是通过图形接口,点击,从而完成相应的操作(如进入D盘的操作,通常是双击D盘盘符,运行应用程序也可以如此)。在预设情况下,可以将压缩档任何地方解开。●-a或-all详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。

2026-07-15 17:43:57 1752 107

原创 Linux——基础指令(上)

据权威部门统计,目前Linux在服务器领域已经占据75%的市场份额,同时,Linux在服务器市场的迅速崛起,已经引起全球IT产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量。随着Linux操作系统飞速发展,各种集成在Linux上的开源软件和实用工具也得到了应用和普及,因此,Linux也成为了开源软件的代名词。据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建,目前,Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统。

2026-07-15 17:41:14 3502 124

原创 优选算法——BFS

💁‍♂️👇。

2026-06-15 21:05:30 1068 119

原创 优选算法——优先级队列

💁‍♂️👇。

2026-06-15 21:04:55 786 108

原创 优选算法——队列+宽搜

💁‍♂️👇。

2026-06-01 21:00:36 571 112

原创 优选算法——栈

💁‍♂️👇。

2026-06-01 20:59:21 1002 130

原创 优选算法——字符串

整体思路就是模拟小学。

2026-05-20 21:15:18 897 117

原创 优选算法——哈希表

💁‍♂️👇。

2026-05-20 21:14:43 1852 118

原创 C++起始之路——C++11(下)

这也意味着lambda表达式若定义在全局位置,捕捉列表必须为空。●默认情况下,lambda捕捉列表是被const修饰的,也就是说传值捕捉的过来的对象不能修改,mutable加在参数列表后面可以取消其常量性,也就是说使用该修饰符后,传值捕捉的对象就可以修改了,但是修改还是形参对象,不会影响实参。使用该修饰符后,参数列表不可省略(即使参数为空)。

2026-05-16 20:13:38 1057 95

原创 递归、搜索与回溯——综合(下)

💁‍♂️👇。

2026-05-16 20:13:03 713 106

原创 递归、搜索与回溯——综合(上)

1.定义行、列、九宫格标记数组以及找到可行方法的标记方法,将它们初始化为false。2.定义一个数组来存储每个需要处理的位置。3.将题目给出的所有元素的行、列以及九宫格坐标标记为true。4.将所有需要处理的位置存入数组。

2026-05-09 21:39:32 842 141

原创 C++起始之路——C++11(上)

💁‍♂️个人主页👇。

2026-05-09 21:39:02 1114 114

原创 C++起始之路——用哈希表封装myunordered_set和myunordered_map

💁‍♂️👇。

2026-04-25 18:17:09 1198 96

原创 C++起始之路——哈希表的实现

若是2^x,那么key%2^x本质相当于保留key的后x位,那么后x位相同的值,计算出的哈希值都是一样的,就冲突了。当key是string/Date等类型是,key不能取模,那么需要给HashTable增加一个仿函数,这个仿函数支持把key转换成一个可以取模的整型,若key可以转换为整型并且不容易冲突,那么这个仿函数就用默认参数即可,若这个key不能转换成整型,就需要自己实现一个仿函数传给这个参数,实现这个仿函数的要求就是尽量key的每个值都参与到计算中,让不同的key转换出的整型值不同。

2026-04-25 18:16:40 1304 91

原创 C++起始之路——unordered_map和unordered_set的使用

●unordered_map和map的第二个差异是迭代器的差异,map的iterator是双向迭代器,unordered_map是单向迭代器,其次map底层是红黑树,红黑树是二叉搜索树,走中序遍历是有序的,所以map迭代器遍历是Key有序+去重。●unordered_set和set的第二个差异是迭代器的差异,set的iterator是双向迭代器,unordered_set是单向迭代器,其次set底层是红黑树,红黑树是二叉搜索树,走中序遍历是有序的,所以set迭代器是有序+去重;

2026-04-22 19:12:21 1045 73

原创 C++起始之路——封装红黑树实现map和set

●end()如何表示?如下图:当it指向50时,++it时,50是40的右,40是30的右,30是18的右,18到根没有父亲,没有找到孩子是父亲左的那个祖先,这是父亲为空了,那我们就把it中的节点指针置为nullptr,用nullptr去充当end。尤其是set,两个模板参数是一样的。●若当前节点是父亲的右,根据中序左子树->根节点->右子树,当前节点所在的子树访问完了,当前节点所在父亲的子树也访问完了,那么下一个访问的需要继续往根的祖先中去找,直到找到孩子是父亲左的那个祖先就是中序要访问的下一个节点。

2026-04-22 19:11:54 1298 80

原创 递归、搜索与回溯——回溯

回溯算法是一种经典的递归算法,通常用于解决组合问题、排列问题和搜索问题等。回溯算法的基本思想:从一个初始状态开始,按照一定的规则向前搜索,当搜索到某个状态无法前进时,回退到前一个状态,再按照其他的规则搜索。回溯算法在搜索过程中维护一个状态树,通过遍历状态树来实现对所有可能解的搜索。回溯算法的核心思想:“试错”,即在搜索过程中不断地做出选择,若选择正确,则继续向前搜索;否则,回退到上一个状态,重新作出选择。回溯算法通常用于解决具有多个解,且每个解都需要搜索才能找到的问题。

2026-04-19 15:29:50 687 73

原创 递归、搜索与回溯——二叉树中的深搜

💁‍♂️👇。

2026-04-19 15:28:53 595 80

原创 C++起始之路——红黑树的实现

💁‍♂️👇。

2026-04-16 13:13:45 1246 73

原创 C++起始之路——AVL树的实现

💁‍♂️👇。

2026-04-16 13:13:13 830 80

原创 C++起始之路——map和set的使用

●set的声明如下,T就是set底层关键字的类型●set默认要求支持小于比较,若不支持或者想按自己的需求走可以自行实现仿函数传给第二模板参数●set底层存储数据的内存是从空间配置器申请的,若需要可以自己实现内存池,传给第三个参数。●一般情况下,我们都不需要传后两个模板参数。●set底层是用红黑树实现,增删查效率是O(logN),迭代器遍历是走的搜索树的中序,所以是有序的。

2026-04-11 20:25:27 587 68

原创 递归、搜索与回溯——递归

在解决一个规模为n的问题时,若满足一下条件,我们可以使用递归来解决:a.问题可以被划分为规模更小的子问题,并且这些子问题具有与原问题相同的解决问题。b.当我们知道规模更小的子问题(规模为n-1)的解时,我们可以直接计算出规模为n的问题的解。c.存在一种简单情况,或者说当问题的规模足够小时,我们可以直接求解问题。一般的递归求解过程如下:a.验证是否满足简单情况。b.假设较小规模的问题已经解决,解决当前问题。上述步骤可以通过数学归纳法来证明。

2026-04-11 20:24:47 662 80

原创 C++起始之路——二叉搜索树

树的结构中(节点)除了需要存储还要存储对应的value,增/删/查还是以key为关键字走二叉搜索树的规则进行比较,可以快速查找到key对应的value,key/value的搜索场景实现的二叉搜索树支持修改,但是不支持修改key,修改key破环搜索树性质了,可以修改value。3.若支持插入相等的值,插入值跟当前节点相等的值可以往右走,也可以往左走,找到空位置,插入新节点(要注意的是要保持逻辑一致性,插入相等的值不要一会往右走,一会往左走)●若它的左子树不为空,则左子树上所有节点的值都小于等于根节点的值。

2026-03-31 19:24:23 1426 83

原创 C++起始之路——多态

多态(polymorphism)的概念:通俗来说,就是多种形态。多态分为编译时多态(静态多态)和运行时多态(动态多态),主要是运行时多态,编译时多态(静态多态)和运行时多态(动态多态)。编译时多态(静态多态)主要就是我们前面的函数重载和函数模板,它们传不同类型的参数就可以调用不同的函数,通过参数不同达到多种形态,之所以叫编译时多态,是因为它们实参传给形参的参数匹配是在编译是完成的,我们把编译时一般归为静态,运行时归为动态。

2026-03-31 19:23:57 650 79

原创 C++起始之路——继承

继承(inheritance)机制是面对对象程序设计使代码可以复用的最重要的手段,它允许我们在保持原有类特征的基础上进行扩展,增加方法(成员函数)和属性(成员变量),这样产生新的类,称为派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的函数层次的复用,继承是类设计层次的复用。

2026-03-27 22:21:30 712 78

原创 优选算法——链表

💁‍♂️👇。

2026-03-24 19:20:05 1215 74

原创 优选算法——分治

三者相加即可。●解决第二个问题,为什么要这样做?再归并排序合并的过程中,我们得到的是两个。

2026-03-24 19:18:38 1132 56

原创 C++起始之路——模板进阶

模板参数分类类型形参与非类型形参。类型形参即:出现在模板参数列表中,跟在class或typename之类的后面的参数类型名称。非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用。//定义一个模板类型的静态数组public:private:注意:1.浮点数、类对象以及字符串是不允许作为非类型模板参数的。(只有整形可以,像int、long、无符号整形、bool等)。2.非类型的模板参数必须在编译其就能确认结果。

2026-03-17 22:02:57 1807 66

原创 C++起始之路——stack和queue

stack的文档介绍》《queue的文档介绍》1.队列是一种容器适配器,专门用于在FIFO(先进先出)中操作,其中从容器一段插入元素,另一端提取元素。2.队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾如队列,从队头出队列。3.底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。该底层容器至少支持一下操作:●empty:检测队列是否为空●size:返回队列中有效元素的个数●front:返回队头元素的引用。

2026-03-17 22:02:30 693 67

原创 C++起始之路——list

list的文档介绍。

2026-03-12 21:54:56 542 69

原创 优选算法——模拟

👇作者其它专栏。

2026-03-11 10:29:55 967 58

原创 优选算法——位运算

👇作者其它专栏。

2026-03-10 17:22:04 574 52

原创 优选算法——前缀和

👇作者其它专栏。

2026-03-01 03:59:50 1676 68

原创 优选算法——二分查找

1.关于什么时候用三段式,还是二段式中的某一个,一定不要强行去用,而是通过具体的问题分析情况,根据查找区间的变化确定指针的转移过程,从而选择一个模板。2.当选择两段式的模板时:●在求mid时,只有right-1的情况下,才会向上取整(即+1,取中间数时)

2026-02-16 01:17:41 1896 51

原创 C++起始之路——vector

vector的文档介绍学习STL需要做到:能用、明理、能扩展。(constructor)构造函数声明接口说明vector()(重点)无参构造构造并初始化n个valvector(const vector& x)(重点)拷贝构造使用迭代器进行初始化构造。

2026-02-07 02:04:53 942 46

原创 C++起始之路——string

●。

2026-02-02 02:09:29 1193 41

空空如也

空空如也

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

TA关注的人

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