自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 优先算法专题十六——BFS解决最短路径问题

这种问题一般需要层次遍历来进行辅助,因为层次遍历可以找出本层连接的下一层的地点;一般还要有个哈希表记录地点访问过没有,防止走重复的路。

2025-12-11 15:10:48 335

原创 优先算法专题十五——BFS_FloodFill

泛洪覆盖式地一层一层向外扩展。

2025-12-10 22:22:24 172

原创 优先算法专题十四——优先级队列(堆)

大于大堆堆顶数据时,插入给小堆,但是数据个数不平衡(要么两堆数据个数相同,要么大堆数据个数比小堆多一个),此时要将小堆堆顶数据删除并且插入给大堆即可。// 2、若是两堆数据不同(大堆数据多一个):若是插入数据小于等于大堆堆顶数据,插入给大堆,数据不平衡,将大堆堆顶删除并且插入给小堆即可;若是插入数据大于大堆堆顶数据,插入给小堆即可。若是奇数,则保证前面的大堆的数据多一个,取中位数的时候取大堆堆顶即可。// 前面小的一半数据用大堆维护,后面大的一半数据用小堆维护,那么取从两个堆的堆顶就可以找出中位数。

2025-11-30 15:14:31 265

原创 优先算法专题十三——队列宽搜

用一个数组遍历当前节点的全部孩子,依次进队列层次遍历即可和上题类似,只需要用一个变量来标记这层是正着入数组或者反之入数组即可。

2025-11-24 20:44:43 238

原创 优先算法专题十二——栈

/当存放'['的栈和存放字符串的栈的元素个数相同时,说明此时的字符串是在和栈顶字符串的同一层[]内,那么将栈顶元素拿出和此时的字符串构成新的字符串入栈即可;当存放'['的栈为空时,说明此时的字符串在最外层,直接加到结果上面即可。//当一个数字前面符号为'+',将这个数字入栈;//不仅仅是新生成的字符串需要这样,当']'匹配时构建的新的重复字符串特要这样。//遍历pushed入栈,先入栈,当入栈元素和poped中元素相同时出栈。//一个栈存数字,一个栈存'[',一个栈存字符串。

2025-10-21 14:55:07 278

原创 Linux——线程概念与控制

回顾之前知识 可以知道进程:进程访问大部分资源都是通过虚拟地址空间进行访问的 可以说地址空间是一个“窗口” 每一个不同的进程的窗口不同 因为每个进程都有自己的独立的内核数据结构但是若是创建一个“进程” 它可以共享“窗口”呢 只需要将这个进程的资源分配给不同的task_struct就用 进程创建出了线程了 而分配资源的本质就是给不同的task_struct划分不同的虚拟地址范围 因为都是通过虚拟地址加上页表的转化找到内存中实际的资源的由上面概念得出初步理解理解一:Linux线程可以采用进程来模拟。

2025-10-21 14:54:16 979

原创 优先算法——专题十一:字符串

两种方法:两两比较或者一起比较。

2025-09-11 22:31:07 600

原创 Linux——进程间通信

数据传输:⼀个进程需要将它的数据发送给另⼀个进程资源共享:多个进程之间共享同样的资源。通知事件:⼀个进程需要向另⼀个或⼀组进程发送消息,通知它(它们)发⽣了某种事件(如进程终⽌时要通知⽗进程)。进程控制:有些进程希望完全控制另⼀个进程的执⾏(如Debug进程),此时控制进程希望能够拦截另⼀个进程的所有陷⼊和异常,并能够及时知道它的状态改变。1.2、怎么通信?进程间通信的本质是让不同的进程看到同一份资源(进程间通信的前提条件),之后才有进程间通信。

2025-09-11 22:30:24 1171

原创 优先算法——专题十:哈希表

哈希表就是为了快速查找的,查找效率极快在涉及到查找的算法题中,可以考虑使用哈希思想。

2025-07-19 23:14:51 307

原创 笔试强训——第一周

本题采用哈希,因为哈希查找速度极快。

2025-07-19 23:14:38 1138

原创 优先算法——专题九:链表

一、两数相加。

2025-07-18 18:30:06 459

原创 Linux——库的制作与原理

静态链接的出现,提⾼了程序的模块化⽔平。对于⼀个⼤的项⽬,不同的⼈可以独⽴地测试和开发⾃⼰的模块。通过静态链接,⽣成最终的可执⾏⽂件。我们知道静态链接会将编译产⽣的所有⽬标⽂件,和⽤到的各种库合并成⼀个独⽴的可执⾏⽂件,其中我们会去修正模块间函数的跳转地址,也被叫做编译重定位(也叫做静态重定位)。⽽动态链接实际上将链接的整个过程推迟到了程序加载的时候。⽐如我们去运⾏⼀个程序,操作系统会⾸先将程序的数据代码连同它⽤到的⼀系列动态库先加载到内存,其中每个动态库的加载地址。

2025-07-18 18:28:19 1113

原创 Linux系统-Ext系列文件系统

本质上没有创建新的文件(因为没有新的inode编号),只是增加了文件名到同一个inode的映射关系,采用引用计数来记录到同一个inode映射关系有多少个作用是给文件做备份建立连接:ln解除连接:unlink看例子.表示当前目录,因为当前这个目录有一个名字ext2,所以引用计数为2。

2025-07-01 10:44:49 922

原创 优先算法——专题八:分治归并

注意创建临时vector对象记录归并结果时,创建一个全局或者在开始创建效率相比于每次归并都创建一个临时vector对象效率更高一点。

2025-07-01 10:44:39 652

原创 优先算法——专题七:分治快排

思路:就是快排的三路划分,三个指针控制值得注意的是cur的起始位置为0,保证每个数据都被扫描到在数据结构-排序扩展中,cur定义为left+1,这是因为默认选取最左边的nums[left]为key值作为比较的基准,但是这里每个元素都要被扫描到。可以理解为key值不需要扫描,因为已经知道了它是谁,后面的数据都是要和它比较的数据,需要扫描在本题中,若是nums[left]最开始的值是是 -1,那么也可以将cur定义为left+1。

2025-05-28 13:02:29 882

原创 第三章、数据链路层

看一看两台主机通过互联网进行通信时数据链路层所处的地位专门研究数据链路层的问题时,可以只关心水平方向的数据链路层。

2025-05-28 13:02:03 893

原创 第二章、物理层

简单来说,就是前后码元的波形相互重叠,使得接收端难以准确判断当前码元的值。ADSL借助于用户线两端的ADSL调制解调器(即ATU-C、ATU-R)对数字信号进行调制,使得调制之后的数字信号的频谱适合在原来的用户线上传输,用户线本身没有变化,给用户的感觉就是加上ADSL的用户线好像能够直接把用户计算机产生的数字信号传递给远方的ISP;时分复用中,当给一个用户分配资源后,这个用户有可能并不是一直在发送数据,会产生空闲的时隙,此时就算其他用户一直由用户要发送,也不能利用这些空闲的时隙,因为这个时隙已经被分配了;

2025-05-12 21:34:21 1384

原创 数据结构-排序扩展

三路划分算法解析:,三路划分的核⼼思想有点类似hoare的左右指针和lomuto的前后指针的结合。核⼼思想是把数组中的数据分为三段【⽐key⼩的值】 【跟key相等的值】【⽐key⼤的值】,所以叫做三路划分算法。结合下图,理解⼀下实现思想:1.key默认取left位置的值。2.left指向区间最左边,right指向区间最后边,cur指向left+1位置。3.cur遇到⽐key⼩的值后跟left位置交换,换到左边,left++,cur++。4.

2025-05-12 01:00:00 1591

原创 Linux系统-基础IO

Linux下一切皆是文件(磁盘、网卡、显示器、键盘……等等,这些都是抽象化的过程)成功以写的打开文件不存在的文件会默认先生成这个文件;生成的位置为当前的路径;这是因为cwd记录着当前进程的路径,这个进程打开文件时,也会把文件拼接在这个路径之后:介绍两个函数:fwrite、fread写文件:将msg和cnt格式化写入buffer,再使用fwrite函数将buffer的内容写入myfile文件 作为标准错误流,程序在运行期间遇到错误时,可借助它输出错误信息。将错误信息和正常输出分开

2025-05-08 01:00:00 1689

原创 MySQL索引

这样在铲鲟主键为4的记录时,就不需要在单个page里面线性遍历了,只需要通过目录确定这个主键的位置,再从这个目录对应的起始位置开始遍历,这样就大大提高了效率(目录2[3]表示第二个目录从主键为3的记录开始的);优点:这样的树一定是一颗矮胖的树,也就是说从上向下进行查找时不需要很多次,就能找到范围,因为上层节点没有存放数据而是目录,也就是说这样的page可以存放很多目录,在查找时,正式因为有序,在查找的时候,从头到后都是有效查找,没有任何一个查找是浪费的,而且,如果运气好,是可以提前结束查找过程的。

2025-05-02 01:00:00 996

原创 Linux-进程控制

分配新的内核数据结构即pcb以及mm_struct、vm_area_structfork()创建子进程,给父进程返回子进程pid,给子进程自己返回0;那么3493就是父进程的pid,子进程pid就是3494原理:写时复制是一种延迟拷贝技术,多个进程在最初可以共享同一块内存区域,只有当其中某个进程尝试对这块共享内存进行写入操作时,系统才会为该进程创建一个独立的内存副本,让其在副本上进行写入,而其他进程继续使用原来的内存,以此避免不必要的内存拷贝,提高系统性能。 实现方式:Linux 通过页表机制来实现写

2025-04-26 17:35:32 1160

原创 第一章、概述

计算机网络(简称网络)由若干节点和连接这些节点的链路组成(节点可以是计算机、集线器、交换机或路由器登)互连网(网络的网络):多个网络通过路由器连接在一起与网络相连计算机称为主机,路由器是一种特殊的计算机,但是不能称之为主机网络将许多计算机连接在一起,而互连网则把许多网络通过路由器连接在一起,与网络相连的计算机常称为主机1.2.2、互联网基础结构发展的三个阶段。

2025-04-22 01:00:00 777

原创 MySQL复合查询

1、查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J2、按照部门号升序而雇员的工资降序排序3、使用年薪进行降序排序4、5、6、7、8、

2025-04-20 01:00:00 678

原创 MySQL内置函数

1、length显示的是字节数而不是字符数,也就说,在utf8下若是汉字时,一个汉字占3个字节,也就是一个汉字显示length是3;方法:首先将姓名分为两部分,第一部分就是首字母,第二部分就是剩下的,对第一部分进行lcase,再将这两部分进行cancat拼接。2、这些函数的操作最终都不会影响原表,也就是说就算涉及到表中数据的改变,只是呈现的看起来改变了,但是实际上,原表没有被更改;显示exam_result中的内容,格式为 XXX的语文成绩是:XXX,数学成绩是:XXX,英语成绩是:XXX.

2025-04-14 19:03:49 1012

原创 Linux-进程概念

当我们要运行某个程序或者代码时,这个程序或者代码会从磁盘载入到内存,而操作系统会在开机时就载入内存进行运行,操作系统对载入的程序或者代码进行管理,通过先描述再组织的方式进行管理形成的PCB(process control block即进程控制块)(PCB也可以叫做内核数据结构对象)和载入的程序或者代码就是进程。这些一个一个PCB数据结构是操作系统管理中描述过程的结果,PCB中包含一个进程的相关属性(如标识符、状态、优先级、程序计数器、内存指针等等);

2025-04-14 01:00:00 1842

原创 C++_智能指针

智能指针类除了满⾜RAII的设计思路,还要⽅便资源的访问,所以智能指针类还会想迭代器类⼀样,重载等运算符,⽅便访问资源。

2025-04-10 15:03:15 705

原创 C++_异常

目录一、异常的概念以及使用1.1、异常的概念1.2、异常的抛出和捕获1.3、栈展开1.4、查找匹配的处理代码1.5、异常的重新抛出1.6、异常安全问题1.71.7、异常规范二、标准库的异常 若是b为0,那么会throw抛异常,先在当前函数域找有无匹配的catch来匹配抛出异常对象的类型,但是这个函数里面的是int,继续在函数链中找,Divide里面也不匹配,编译器直接跳到main函数,匹配,那么打印异常信息;注意,throw之后Divide里面throw后面的都不会执行;当捕获异常时,若是不匹配那么

2025-04-06 20:26:44 809

原创 C++11详解

lambda表达式。

2025-04-06 16:56:39 1152

原创 MySQL基本查询

所以total是第三步出来的,但是where是第二部。查询姓孙的,或者语文成绩大于数学成绩并且英语成绩小于80的。

2025-04-04 15:24:35 697

原创 MySQL表的约束

例子:一个学生表,包含学生的各种属性,其中有一个属性是班级id,若是在这个学生表中查看班级id就会有很多重复的,因为可以出现很多学生在同一个班级的情况;那么定义一个班级表,其中包含主键班级id和班级名;再将学生表中的班级id定义为外键,关联的是班级表的主键id,此时查看起来就会很方便;并且更重要的一点就是有了完整性约束,就是给学生表插入新数据时,插入的所属班级id的值不能是主表班级表中主键id不存在的值。先创建主表:再创建从表:给主表插入数据,表示能收学生的班级号有哪些;

2025-03-31 21:41:59 1093 1

原创 二叉树扩展-二叉树进阶算法题

val = val;T _val;

2025-03-26 11:26:02 742

原创 MySQL数据类型

tinyint范围是-128~127,那么给这个表的num插入数据时,不能插入超过这个范围的数据;这里tinyint后面括号中的内容不是字节数;tinyint可以是无符号的,范围是0~255,

2025-03-25 12:40:00 878

原创 MySQL表的操作

field表示列名,即属性datatype表示列的类型字符集,如果没有指定字符集,则以所在数据库的字符集为准collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准engine 存储引擎,如果没有指定存储引擎,则以所在数据库的存储引擎为准comment是对这些属性的说明;查看使用MyISAM存储引擎的表的文件:users.frm:表结构users.MYD:表数据users.MYI:表索引进入/etc/my.cnf,默认使用的引擎是innodb。

2025-03-18 10:32:25 533

原创 MYSQL库的操作

没有写-h 127.0.0.1默认连接本地没有写 -P 3306默认连接3306端口号创建一个名字为db_name的数据库在Linux的目录下可以看到新建的数据库目录d1:同样地在Linux这个目录下也可以创建一个新的目录在mysql里面相当于创建了新的数据库,但是一般不会这样写。创建一个数据库,但是若是这个数据库已经存在就不会创建了。

2025-03-18 01:30:00 1146

原创 哈希扩展-位图、布隆过滤器、海量数据处理

问题:现有40亿无符号整数,需要从中查找一个指定的无符号整数是否存在,你要怎么解决?解法一:遍历这些数据(效率低O(N));解法二:先排序再二分查找(O(N*logN)+O(logN)),看似可行,实则不然:首先先要存放这些整数,一个整数4个字节,总共160亿字节,约为16G的内存,显然不行;解法三:使用位图将数据映射到bit位,这个bit位为1表示存在反之不存在;就算是40亿个不重复的无符号整数,只需要40亿个比特位来映射,也就是4G左右;###测试。

2025-03-03 09:29:11 1116

原创 C++ unordered_set、unordered_map哈希使用及其封装

和unordered_set与set差异相同;本身与map使用差不多;unordered_multimap/unordered_multiset跟multimap/multiset功能完全类似,⽀持Key冗余。二、哈希表实现。

2025-02-28 19:10:10 944

原创 Linux基础环境开发工具使用

用自己定义的变量代替命令,但是使用时要用$(),echo打印测试是不是能替换echo前面加上@不显示执行的命令,但是非命令的会显示;

2025-02-16 15:33:31 902

原创 Linux权限

普通用户权限低受管控,超级用户权限高;超级用户切换到普通用户方式 :su 普通用户名,不需要输入密码普通用户切换到超级用户方式:su root(root可省略)之后回车输入密码或者su -之后回车输入密码;这两种方式区别是第二种切换为超级用户之后路径会回到/root,但是第一种保持为切换前的普通用户的路径不变exit从超级用户退出到普通用户。

2025-01-21 22:11:12 834

原创 Linux基本指令(3)

进行Linux和Linux系统之间进行互传压缩包 :scp dst.tgz 用户名@你的公网IP: 目标机器指定的路径;打包压缩目录:zip -r dir1.zip dir1 那么dir1和其里面的文件变成了一个文件 dir1.zip;unzip -d dir.zip /root 把解包后的文件解包到指定目录 /root。选项一般是-czf,不需要加 -r;常见选项:-n 显示行号、-v 显示不含关键字的行的信息、-i 忽略行中信息的大小写进行匹配。输入指令sz后回车,弹出界面,选择安放压缩包的位置。

2025-01-16 21:37:21 700

原创 Linux基本指令(2)

显示时间,加上选项(选项最开始又加上‘+’)可以设置打印出来的时间的格式:%Y表示年,%m表示月,%d表示天,%F相当于%Y-%m-%d;意思就是先查看出前num1行的内容,再查看这部分内容的后num2行的内容,相当于就是查看中间部分的内容。显示内容时,输入 / 加上字符串可以直接查看到这个字符串所在的文件位置,并且显示出这一页的内容,若是多个出现按n表示next逐页查看。查看文件,开始时只显示当前屏幕能容纳的文件内容,需要按回车查看下面的内容,但是只能向下查看,不能再向上查看了。cal 月份 年份;

2025-01-15 20:26:18 502

空空如也

空空如也

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

TA关注的人

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