- 博客(55)
- 收藏
- 关注
原创 【力扣专题栏】BFS(广度优先遍历)的使用——二维数组连通块问题
本文介绍了FloodFill算法(泛洪填充法)在图像处理中的应用,重点分析了四种典型场景的解决方案。对于单个连通块的图像渲染问题,使用深度优先搜索进行填充;针对多个连通块的岛屿计数问题,采用队列+BFS遍历;在求岛屿最大面积时,通过记录比较连通块数量实现最值计算;处理被围绕区域问题时,运用"正难则反"思想,先处理边界再填充内部。这些案例展示了FloodFill算法在解决二维矩阵连通性问题时的灵活应用,核心都是通过递归或迭代方式实现区域填充。
2025-08-10 08:46:38
247
原创 【C++专栏】理解三大特性,细讲继承(菱形继承)和多态(底层原理)?
首先明确的是,在继承体系中,每个类都有独立的作用域,因此派生类继承基类之后,两个类也是独立的作用域的。那么就会出现基类和派生类中出现同名的成员属性和成员方法,这时候派生类中的那个成员属性和成员方法就会屏蔽掉基类的那个成员属性和成员方法,这种情况就叫做隐藏(重定义)。若在派生类中要访问同名基类中的成员属性或方法的时候,就需要基类名::成员属性/方法。这里需要注意,成员方法构成隐藏的条件就是只要函数名相同就构成隐藏。
2025-07-06 10:57:28
1051
原创 【测试专栏】自动化测试——云存储项目
该项目功能是登录后,可以进行所有文件的详情展示、文件的上传下载以及分享、文件\文件夹的创建和删除、用户信息的设置、系统通知功能和帮助中心的展示。
2025-06-11 23:32:50
1190
原创 【Liunx专栏_6】Linux线程概念与控制
上面看到线程的等待,线程退出后需要对线程进行等待,保证资源的释放,避免系统资源的泄露。从创建的角度看:创建一个新线程比创建一个新进程的代价小的多,因为从上面的关系和区别可以看出,创建一个线程不需要从新分配虚拟地空间,没有数据的大量拷贝,而创建进程需要创建新的程序地址空间,同时还要拷贝原始数据,增加的系统的消耗。上面描述的整个流程,从进程的创建(PCB的创建)、程序的代码和数据通过页表进行的映射关系的建立、到CPU的调度执行,该流程就可以看做是一个执行路线,只不过只有一个执行流,我么把该执行线路就称之为。
2025-06-08 15:39:57
1089
原创 c++ —— 内存管理
操作自定义类型,也就是用户自定义个数据类型,然后通过new和deletepublic:my_num():_num(1)cout << "my_num()构造函数……" << endl;~my_num()cout << "~my_num()析构函数……" << endl;free(p2);return 0;
2025-06-07 23:51:12
1184
1
原创 【Linux专栏_5】Linux进程间关系和守护进程
可以看到当一开运行进程的时候,父进程延时5秒的,此时进程有自己的PPID、PID、PGID,由于是单进程所以是自己的PID,当5秒结束后,创建子进程,让父进程直接退出,此时该进程就变为了孤儿进程,被1号进程领养,但所属的进程组ID是不变的,还是第一个进程运行的PID,只是PID变为了子进程的PID了。总结就是:当多个进程在运行时候,他们有各自的PPID、PID,但是PGID是相同的,因为是一个进程组,并且规定进程组ID就是第一进程执行时的PID。一个作业可以包含一个进程或者是进程组,进程之间相互协调。
2025-05-15 20:24:46
824
原创 【MySQL专栏】MySQL数据库表的内外连接
通过内连接查询出的结果,只是包括两张表都有的信息才显示出来,无法显示没有成绩的同学,因此要用外连接。内连接的格式写:用哪张表 inner join 哪张表 on 连接的具体条件……简单说就是在联合两张表查询的时候,想让左侧的表的信息全部显示出来就是左外连接。什么是表的内连接:即利用where子句对两张表形成的笛卡尔积表进行查询。也就是和id=11的,没有学生和这id对应,但是也要显示出来。当连接条件有多个的时候需要更具要求使用and、or关键字等。如果联合查询,右侧的表完全显示我们就说是右外连接。
2025-04-27 17:32:58
516
原创 【MySQL专栏】MySQL数据库的复合查询语句
上面来练习的语句中都是单表查询,而此处的多表查询实际上也可以看作是单表查询,只不过是经过组合的一张表,通过笛卡尔积组合后就是一张表了,然后从整个大表中进行筛选即可。先通过下面语句看到笛卡尔积的现象:可以看到员工表和部门表进行笛卡尔积后得到很多数据,其中有些数据是不符合的,因此需要进行筛选,即我们只要emp表中的deptno = dept表中的deptno字段的记录。总结:在进行多表查询的时候,先进行无脑笛卡尔积,然后通过唯一值条件筛选即可,唯一值条件即是能说明多张表组合后,只能有一条数据在符号要求的。
2025-04-25 14:37:02
965
原创 【Linux专栏_1】Linux中常用的指令
下面所有的操作都是在XShell+Ubuntu 20.04版本。在XShell中复制粘贴:复制:(有的可能 insert 需要配合 fn 来按)ctrl + c / ctrl + v 是不得行的。
2025-03-03 19:04:48
731
原创 【力扣专题栏】字母异词分组,如何利用强大的容器(unordered_map)解决该问题?
【代码】【力扣专题栏】字母异词分组,如何利用强大的容器(unordered_map)解决该问题?
2024-11-03 16:34:24
353
原创 【力扣专题栏】面试题 01.02. 判定是否互为字符重排,如何利用数组模拟哈希表解决两字符串互排问题?
【代码】【力扣专题栏】面试题 01.02. 判定是否互为字符重排,如何利用数组模拟哈希表解决两字符串互排问题?
2024-11-02 15:50:15
299
原创 【力扣专题栏】合并K个升序链表,3种解法讲解如何实现vector容器里面多个链表的合并?
解释:首先vector容器里面放有多个元素,每个元素是一个链表,每个链表含有0个或多个节点。当到达递归结束条件时,就开始往回归并。
2024-10-30 23:49:15
471
1
原创 【力扣专题栏】重排链表,如何实现链表里面节点之间的交换?
主要就是实现:第一个节点和最后一个节点交换,第二节点和倒数第二个节点交换,依次交换下去。
2024-10-30 19:16:59
356
原创 【力扣专题栏】两两交换链表中的节点,如何实现链表中两两相邻节点的交换?
【代码】【力扣专题栏】两两交换链表中的节点,如何实现链表中两两相邻节点的交换?
2024-10-27 15:02:06
480
原创 【C++进阶专栏】:priority_queue(优先级队列)?仿函数?
priority_queue:优先级队列,别看有一个队列的名字,但结构个队列完全不一样。队列是一种先进先出的结构特征,然而这里的优先级队列,此结构是一种堆的结构,但是用vector形式存储数据的。以堆的结构来实现该优先级队列,可以在每次top堆顶元素的时候都是最大或最小的元素,可以应用于top_k问题,即返回一个大量数据中前K个较大的元素值。接下来就来了解了解优先级队列吧!
2024-10-13 16:39:27
873
原创 C++进阶—>多态(3个问题了解它)
该模块属于C++进阶内容,通过三个问题(是什么?——>怎么实现??——>为什么可以这样???来理解多态这个陌生的词语,以及底层原理?在知道多态是怎样实现的,就需要知道虚函数表、虚函数表这两个词语!
2024-09-27 19:44:38
924
原创 C++—>STL中vector使用篇+简单接口的模拟实现
前面描述了字符串string的相关知识,接下来描述第二个常用容器——vector,即顺序表。👇👇简单来说,vector相当于C++中的数组,数组中可以用的操作,在vector中都有相应的接口,并且具有数组没有的功能,基于数组的数据结构实现自动管理内存的,方便灵活的序列容器。
2024-08-17 16:50:55
921
原创 C++—>STL中string篇
我们在C语言中学习了字符串(用双引号引起的以’/0’结尾的一串字符),并提供了字符串库函数的使用,但为了更好的使用,C++中分封装了字符串的类——string,提高效率。接下来我们看看string的相关知识。🚗string标准库。
2024-08-16 22:51:10
827
原创 C++中构造/拷贝构造函数和析构函数以及运算符重载
我们在学习C++类的时候需要知道它的默认函数,主要包括构造函数(相当于C语言中的初始化函数)、析构函数(相当于销毁函数)、拷贝构造函数、赋值重载函数。接下来依次讲解该4个函数。
2024-08-04 18:39:03
825
原创 数据结构篇4—递归实现二叉树基础结构
此次来了解的是不同于顺序表和链表的结构,顺序表和链表都是线性结构,而此次二叉树则是非线性结构的,从结构上来看相较于之前的要为复杂一些,接下来会讲到什么是二叉树?二叉树的相关性质和相关概念?代码结构实现?……
2024-07-26 08:00:19
798
原创 C++入门基础简述
此篇文章主要简述流程:C++首个程序 -> namespace关键字 -> C++输入/输出 -> 缺省参数 -> 函数重载 -> 引用。
2024-07-11 09:57:11
1330
原创 数据结构篇3——stack(栈)
前面记录了关于顺序表和链表的数据结构,这一篇文章就来说一下“栈”这一个数据结构。当然不是什么龙门客栈了哈哈。接下来就来实现一下栈这个结构吧,并用实例来展示栈的应用!✌。
2024-05-15 17:17:03
387
原创 单链表带环问题
4、问题扩展思考①慢指针slow和快指针fast,慢指针一次走一步,快指针一次走两步,到最后为什么会相遇?首先从图中来分析:②既然慢指针一次走一步,快指针一次走两步,他们一定可以相遇。那么慢指针依旧是一次走一步,而快指针一次走3步? 4步? 5步?……还会再相遇吗?有没有可能一世无法相遇?下面用慢指针slow一次走一步,而快指针一次走3步来分析,是不是无法相遇?
2024-05-03 11:44:12
296
1
原创 数据结构篇2—《单链表(不带头单向不循环链表)》
在数据结构中主要的就是对数据的增删查改操作,在前面讲的顺序表就是其中一种结构,顺序表前身的数组(静态和动态)。而该结构是叫单链表,从逻辑结构上看是连续的,而在物理结构上是不连续存储的。
2024-05-01 16:35:31
1136
4
原创 数据结构篇1—《顺序表》
在前面的文章中,写了关于C语言的各种知识点,也许内容不是很精炼,但对后面知识的学习还是有必要的。接下来就是用C语言实现数据结构的编程。
2024-04-13 11:45:11
1406
1
原创 练手项目层高阶3—《详解文件版本——通讯录管理系统》
我们前面写的两种方法(静态和动态),唯一缺点就是每次运行都要输入新的数据,很麻烦,也就是说写入的数据无法长久保存,代码运行结束后就立即释放了。所以,接下来就用文件操作的知识点,把写入的数据导入到文件中去。
2024-04-06 19:35:31
689
1
原创 练手项目层中阶2—《详解动态版本——通讯录管理系统》
第一个版本是静态的通讯录,就是用的结构体数组来存储的信息,这样会导致空间不够或者浪费的缺点;因此动态版本就解决这样的问题,减少此情况的发生。接下来讲解中阶版本的练手小项目——《动态通讯录管理系统》
2024-04-06 10:57:30
862
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅