自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【初阶数据结构与算法】第十篇——八大排序算法(头脑风暴逻辑分析+动图详解一看就会+代码分析信手捏来)

💬**作者介绍:**自动化,大水生一枚,希望可以一起进步!🏆个人主页:企鹅不叫的博客​ 🌈专栏C语言初阶和进阶C项目Leetcode刷题初阶数据结构与算法C++初阶和进阶⭐️ 博主码云gitee链接:代码仓库地址⚡若有帮助可以【关注+点赞+收藏】,大家一起进步!https://gitee.com/royal-never-give-up)💙系列文章💙【初阶数据结构与算法】第一篇:算法中的时间复杂度和空间复杂度【初阶数据结构与算法】第二篇:顺序表【初阶数据结构与算法】第三篇..

2023-10-21 23:12:17 1904 53

原创 【初阶与进阶C++详解】第一篇:C++入门知识必备

​⭐️本篇博客我要给大家分享一下C++入门知识。希望对大家有所帮助。⭐️ 博主码云gitee链接:码云主页前言​💎一、C++关键字🧡C++又新增了31个关键字,一共63个关键字​💎二、命名空间🧡在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的,....

2022-04-07 13:40:46 1816 37

原创 Python生成图形验证码

分享一个免费下载字体网站:http://www.webpagepublicity.com/free-fonts.html。我选的字体是Bajoran Regular.ttf。

2024-06-27 19:37:58 247

原创 学生管理系统(Python实现+包括管理员和用户注册)

内容分为登录部分和学生管理系统两个部分登录部分包括管理员登录和普通用户登录,在第一次使用软件时,系统会判断是不是第一次使用,如果是第一次使用就要初始化,不是第一次使用就进行用户类型选择,选择管理员用户要进行登录,选择用户要判断是否进行注册,如果注册,则需要先注册再登录创建系统标志文件flag.txt,初始化为0表示系统没有使用过,再首次启动后修改数据内容为1,管理员账户在程序中设计,为root-123456,普通用户保存到当前文件夹之下。

2024-06-24 10:58:10 416

原创 【C++高阶数据结构】跳表(skiplist)

🏆​ 🌈⭐️⚡若有帮助可以【关注】,大家一起进步!

2023-01-07 16:17:18 709 11

原创 【C++高阶数据结构】B树、B+树、B*树

🏆​ 🌈⭐️⚡若有帮助可以【关注】,大家一起进步!

2023-01-06 19:50:57 761 12

原创 【C++高阶数据结构】LRU

​ 🌈⭐️⚡若有帮助可以【关注】,大家一起进步!

2023-01-05 16:28:54 408

原创 【C++高阶数据结构】图

🏆​ 🌈⭐️⚡若有帮助可以【关注++】,大家一起进步!

2023-01-04 19:08:24 837 18

原创 【C++高阶数据结构】并查集

🏆​ 🌈⭐️⚡若有帮助可以【关注++】,大家一起进步!

2022-12-25 18:06:47 390 10

原创 【网络编程】第四章 网络套接字(守护进程+TCP英译汉+TCP通协议讯流程+TCP和UDP对比)

守护进程和后台进程的区别:守护进程和终端没有关系但是后台进程能往终端上输出东西和终端有关联守护进程关闭终端时不受影响而,后台进程会随着终端的退出而退出。

2022-12-23 11:47:46 1095 16

原创 【网络编程】第三章 网络套接字(TCP协议程序+多进程+多线程+线程池)

【网络编程】第一章 网络基础(协议+OSI+TCPIP+网络传输的流程+IP地址+MAC地址)【网络编程】第二章 网络套接字(socket+UDP协议程序)

2022-12-03 18:04:04 645 8

原创 【网络编程】第二章 网络套接字(socket+UDP协议程序)

IP地址是用来标识网络中不同主机的地址。发送方主机的IP地址,保证响应主机“往哪放”接收方主机的IP地址,保证发送方主机“往哪发”

2022-11-29 17:44:59 710 13

原创 【网络编程】第一章 网络基础(协议+OSI+TCPIP+网络传输的流程+IP地址+MAC地址)

🏆​ 🌈⭐️⚡若有帮助可以【关注++】,大家一起进步!

2022-11-26 20:01:57 737 16

原创 KMP算法(求解字符串匹配)

KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特一莫里斯―普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n)。来自-------百度百科。区别: KMP和BF唯一不一样的地方在,我主串的i并不会回退,并且j也不会移动到0号位置。

2022-11-24 17:03:50 688 3

原创 【Linux】第十五章 多线程(线程池)

存放任务记录线程池中创建的线程数互斥锁队列为空时的条件变量public :} //加锁 void lockQueue() {} //解锁 void unlockQueue() {} //判空 bool IsEmpty() {} //等待 void Wait() {} //唤醒 void WakeUp() {//线程池是否开始 int threadNum_;//线程池中线程的数量 queue < T > taskQueue_;

2022-11-23 18:26:06 877 17

原创 【Linux】第十四章 多线程(生产者消费者模型+POSIX信号量)

以单生产者、单消费者为例进行实现队列: 使用STL中的queue来实现容量: 阻塞队列的容量,由用户给定,我们也可以提供一个默认的容量互斥量: 为了实现生产者和消费者的同步,我们需要使用条件变量和互斥量来实现同步的操作生产者唤醒和等待的条件变量: 当队列满了,生产者等待条件满足,应该挂起等待,等待消费者唤醒消费者唤醒和等待的条件变量: 当队列为空,消费者等待条件满足,应该挂起等待,等待生产者唤醒框架:blockqueue.hpp。

2022-11-23 18:18:45 1561 10

原创 【Linux】第十三章 多线程(线程互斥+线程安全和可重入+死锁+线程同步+条件变量)

🏆​ 🌈⭐️⚡若有帮助可以【关注++】,大家一起进步!

2022-11-21 14:15:58 800 16

原创 【Linux】第十二章 多线程(线程概念+线程控制)

线程是OS能够进行运算调度的基本单位。更准确的定义是:线程是“一个进程内部的控制序列”。一切进程至少都有一个执行线程。线程在进程内部运行,本质是在进程地址空间内运行。在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更轻量化。透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理分配给每个执行流,就形成了线程执行流。Linux下没有真正意义上的线程,线程是通过进程来模拟实现的。

2022-11-17 20:05:57 807 16

原创 《剑指offer》【剑指 Offer 34. 二叉树中和为某一值的路径】

1.只有刚好这条路径走完并且值符合target能够记录路径。2.回溯的时候,如果该路径不满足条件则将该路径删除。

2022-11-14 18:30:27 204 1

原创 《剑指offer》【剑指 Offer 33. 二叉搜索树的后序遍历序列】

由于是二叉搜索树,所以左孩子

2022-11-14 18:25:48 176

原创 《剑指offer》【剑指 Offer 32 - III. 从上到下打印二叉树 III】

和上一题的区别是,奇数行顺序存放,偶数行逆序粗放。2.记录每一行剩余未存放的数据个数。

2022-11-14 18:20:28 103

原创 《剑指offer》【剑指 Offer 32 - II. 从上到下打印二叉树 II】

和上一题的不同点在于,需要将每一行的子树存在一起,所以用到二维数组,因此需要记录当前队列存放的节点数量,每次处理完一行之后才进行下一行处理。1.记录每行处理的个数。

2022-11-14 17:31:45 215

原创 《剑指offer》【剑指 Offer 32 - I. 从上到下打印二叉树】

将每行的数据存放到队列当中,每行判断之后将数据存放到容器当中。1.将数据存放到容器当中。2.然后依次遍历左右子树。

2022-11-14 17:21:43 156

原创 《剑指offer》【剑指 Offer 20. 表示数值的字符串】

【代码】《剑指offer》【剑指 Offer 20. 表示数值的字符串】

2022-11-14 17:17:44 121

原创 《剑指offer》【剑指 Offer 19. 正则表达式匹配】

第一个情况,两者相等,则都往后移动一位,第二个情况,"."可以代替任何字符,所以都往后移动一位,第三种情况,"*"之前字符和i字符相等,1.认为"*"相当0个a则j向后移动两位2.认为"*"相当1个a则i向后移动一位,j向后移动一位3.认为"*"相当多个a,则j不变则i向后移动一位,第四种情况,当遇到"*"前是"."和第三种情况一样,第五种情况,"*"之前字符和i字符不相等,则认为"*"相当于0个a,则j向后移动两位。

2022-11-14 17:11:50 230

原创 笔试强训day42(解读密码, 走迷宫)

【代码】笔试强训day42(解读密码, 走迷宫)

2022-11-12 16:35:25 142

原创 笔试强训day41(五子棋,后缀表达式)

得到整个棋盘之后,循环判断每个位置如果是"."就下一个,其他的就是棋子,需要从该位置开始,向右五个位置或者右下五个位置或者下五个位置或者左下五个位置判断是否有五个,如果有就返回yes否则返回no。利用栈存放数据,遇到运算符就取出运算,最后返回值即可。

2022-11-12 16:24:14 149

原创 《剑指offer》【剑指 Offer 14- I. 剪绳子】

手动计算前面几个,当绳子长度1,结果0,绳子长度2,结果1,绳子长度3,结果2,绳子长度4,结果3,形成数组第四个用前面的生成即可,同时记录最大数值。1.从第四个开始,长度是5,结果有(1,4)(2,3)2.将所有结果相乘,保留最大的即可。

2022-11-11 11:24:43 83

原创 《剑指offer》【剑指Offer 13.机器人的运动范围】

递归终止条件,当标记位置超出范围或者当前位置的值不满足行列坐标数位和大于k,当前位置为0。否则将该位置标记为1,同时向右或者向下移动,同时记录步数。2.结束条件是超出范围或者不满足题目条件为止。3.计算i和j两个数所有位数相加的和。1.输入起始位置和矩阵的大小。

2022-11-11 11:18:26 111

原创 《剑指offer》【剑指 Offer 12. 矩阵中的路径】

搜索下一单元格: 朝当前元素的 上、下、左、右 四个方向开启下层递归,使用 或 连接 (代表只需找到一条可行路径就直接返回,不再做后续 DFS ),并记录结果至 res。返回 falsefalse : (1) 行或列索引越界 或 (2) 当前矩阵元素与目标字符不同 或 (3) 当前矩阵元素已访问过 ( (3) 可合并至 (2) )。标记当前矩阵元素: 将 board[i][j] 修改为 空字符 '' ,代表此元素已访问过,防止之后搜索时重复访问。4.暂时修改当前矩阵位置的值,防止后面重复访问。

2022-11-11 11:08:35 889

原创 【Linux】第十一章 进程信号(概念+产生信号+阻塞信号+捕捉信号)

信号是进程之间事件通知的一种方式。

2022-11-09 21:07:07 618 14

原创 笔试强训day40(发邮件,最长上升子序列)

第二题-最长上升子序列

2022-11-09 17:07:59 92

原创 笔试强训day39(字符串计数,最长公共子序列)

若str1[i-1]!= str2[j-1],则 dp[i][j] = max( dp[i-1][j], dp[i][j-1] )若str1[i-1] == str2[j-1],则 dp[i][j] = dp[i-1][j-1]+1。

2022-11-09 10:45:18 116

原创 笔试强训day38(蘑菇阵,红与黑)

【代码】笔试强训day38(蘑菇阵,红与黑)

2022-11-07 21:02:07 179

原创 笔试强训day37(mkdir,数据库连接池)

【代码】笔试强训day37(mkdir,数据库连接池)

2022-11-07 20:55:37 411 2

原创 笔试强训day36(Pre-Post,Rational Arithmetic)

day36

2022-11-07 20:47:48 128

原创 【Linux】第十章 进程间通信(管道+system V共享内存)

进程间通信(IPC,Interprocess communication)是一组编程接口,让不同进程相互传递、交换信息。

2022-11-06 15:59:29 693 11

原创 笔试强训day35(抄送列表,年会抽奖)

分别用两个字符串str和sub分别接收列表和要查找的姓名,遍历str,遇到引号,则继续查找下一个引号出现的位置,然后将引号中间的字符串拷贝到vector当中,没有遇到引号,如果找到尾,则将下一次逗号出现的位置记录,将两个逗号中间的字符串拷贝到vector当中,如果到头了,则直接将最后一个字符串拷贝到vector当中,用sub到vector中寻找是否符合。find(),第一第二个参数控制,寻找的范围(用迭代器),第三个参数是要寻找的字符串,返回值是迭代器,具体使用看代码。

2022-11-05 18:02:20 135

原创 笔试强训day34(养兔子,收件人列表)

【代码】笔试强训day34(养兔子,收件人列表)

2022-11-02 19:41:59 126

原创 【Linux】第九章 动态库和静态库(生成原理+生成和使用+动态链接)

🏆​ 🌈⭐️⚡若有帮助可以【关注++】,大家一起进步!

2022-11-02 19:04:25 499 10

空空如也

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

TA关注的人

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