自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(138)
  • 问答 (1)
  • 收藏
  • 关注

原创 【算法】 分治-归并 算法专题

[toc[

2025-03-21 11:03:54 226

原创 【数据结构与算法】跳表

skiplist 本质上也是一种查找结构,用于解决算法中的查找问题,跟平衡搜索树和哈希表的价值是一样的,可以作为 key 或者 key / value 的查找模型。那么相比而言它的优势是什么的呢?这么等我们学习完它的细节实现,我们再来对比。skiplist是由 William Pugh 发明的,最早出现于他在 1990 年发表的论文《Skip Lists: A Probabilistic Alternative to Balanced Trees》。skiplist,顾名思义,首先它是一个 list。

2025-03-20 22:43:48 997

原创 【Linux】Reactor模式

Reactor 模式是一种事件驱动的设计模式,是将就绪的事件交给特定的事件处理器,用于实现高效的事件驱动程序。它主要用于网络编程中,用于处理大量的并发连接。本篇博客主要讲解了什么是 Reactor 模式、Reactor 模式的组件、Reactor 模式的工作流程以及基于 Reactor 模式的 TCP 服务器等等。以上就是本篇博客的全部内容了,如果大家觉得有收获的话,可以点个三连支持一下!💖💝❣️。

2025-03-20 22:08:29 922

原创 【数据结构与算法】LRU Cache

LRU 是 Least Recently Used 的缩写,意思是最近最少使用,它是一种 Cache 替换算法。什么是Cache?狭义的 Cache 指的是位于 CPU 和主存间的快速 RAM(随机存取存储器), 通常它不像系统主存那样使用 DRAM 技术,而使用昂贵但较快速的 SRAM 技术。广义上的Cache 指的是位于速度相差较大的两种硬件之间, 用于协调两者数据传输速度差异的结构。

2025-03-20 21:52:16 790

原创 【Linux】带你深入了解多路转接

本篇博客主要讲解了多路转接之 select、poll 和 epoll,分析了它们的函数原型、优缺点和应用场景等。以上就是本篇博客的全部内容了,如果大家觉得有收获的话,可以点个三连支持一下!💖💝❣️。

2025-03-20 11:04:19 830

原创 【数据结构与算法】最小生成树|最短路径

Dijkstra 算法只能求出没有负权的图的最短路径,时间复杂度为 O(N^3)。BellmanFord 算法能够求出有负权的图的最短路径,时间复杂度为 O(N^3)。但存在负权回路问题,任何算法都无法解决负权回路问题。Dijkstra 算法和 BellmanFord 算法都需要给点起点,求得的是从起点到其他点的最短路径;而 FloydWarshall 算法能够求出任意两点之间的最短路径,时间复杂度为 O(N^3)。

2025-03-19 09:59:19 1149

原创 【MySQL】基础查询

CRUD 是数据库中常用的术语,表示对数据进行增、删、改、查的操作。主键或者唯一键对应的值已经存在会导致插入数据记录失败。

2025-03-18 21:08:17 751

原创 【算法】分治-快排 算法专题

【代码】【算法】分治-快排 算法专题。

2025-03-18 11:15:15 175

原创 【算法】模拟算法专题

模拟算法其实就是按题意解题。

2025-03-17 10:15:30 643 1

原创 【算法】位运算

题目链接。

2025-03-15 23:47:24 303

原创 【数据结构与算法】图的基本概念 | 邻接矩阵和邻接表 | 广度优先遍历和深度优先遍历

本篇博客主要讲解了图的基本概念、邻接矩阵和邻接表、图的广度优先遍历和深度遍历等。那么以上就是本篇博客的全部内容了,如果大家觉得有收获的话,可以点个三连支持一下!💖💝❣️。

2025-03-15 23:29:12 1022

原创 【Linux】带你了解高级IO

本篇博客主要讲解了 IO 的基本概念、五种 IO 模型、高级 IO 的重要概念、其他高级 IO 以及非阻塞 IO 等等。

2025-03-15 22:27:02 678

原创 【Linux】网络层、数据链路层、DNS、ICMP协议、NAT技术

IP 协议只是依据目的 IP 地址、子网划分、路由表查找与路由算法提供了数据转发的策略,并没有实现设备转发的具体功能。具体的设备转发就是局域网内数据转发的问题,这是由下一层数据链路层来解决的。DNS,全称 Domain Name System,即域名系统,用于将易于记忆的域名)转换为与之对应的 IP 地址。域名解析服务使用的是 UDP 协议的 53 号端口,DNS 协议是应用层协议。当用户在浏览器输入域名的时候,会自动查询 DNS 服务器, 由 DNS 服务器检索数据库,得到对应的 IP 地址。

2025-03-11 14:53:16 768

原创 【MySQL】基本指令

3.连接上mysql后的基本指令。

2025-03-07 11:42:23 185

原创 【MySQL】表的约束

真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是 email,要求是唯一的。在 MySQL 中,约束(Constraints)是指在创建表时规定的对表中数据进行限制的条件。它可以对表中某列或某几列添加一些限制条件,以保证表中的数据符合要求。MySQL 中的约束包括以下几种:主键约束(Primary Key Constraint):用于标识表中每条记录的唯一性,每张表只能有一个主键,主键值不能重复且不能为空。

2025-03-06 16:02:05 682

原创 【算法刷题】前缀和

即先求dp_left,再求dp_right;然后注意初始条件,dp_left[0] = 1;跟上一题前缀和思路相似,只不过变成了前缀积。

2025-03-06 16:01:46 827

原创 【MySQL】数据类型

其格式为 ‘YYYY-MM-DD HH:MM:SS’,其中 YYYY 表示四位年份,MM 表示月份(01-12),DD 表示日期(01-31),HH 表示小时(00-23),MM 表示分钟(00-59),SS 表示秒(00-59)。在 MySQL 中,不同的数据类型有不同的存储需求和存储限制,选择合适的数据类型可以提高数据存储和查询的效率,并保证数据的准确性和完整性。如果数据长度有变化,就使用变长(varchar),比如:名字,地址,但是你要保证最长的能存的进去。定长的意义是:直接开辟好对应的空间。

2025-03-05 23:32:37 1025

原创 【MySQL】表的操作

需要注意的是,MyISAM 存储引擎不支持事务,因此在数据写入时不会有类似 InnoDB 存储引擎的 redo log 和 undo log 进行数据恢复。其中,.MYD 文件和 .MYI 文件是 MyISAM 存储引擎的两个核心文件,用于存储表的数据和索引。在 MyISAM 存储引擎中,数据和索引是分开存储的,因此数据和索引都有自己的文件。.MYD 文件:该文件存储表的数据,也就是表中的记录。.MYI 文件:该文件存储表的索引,加速数据的检索。

2025-03-05 23:32:19 448

原创 【MySQL】库的操作

每个字符集都有一套校验规则,用于定义在特定字符集中哪些字符是有效的,哪些是无效的。MySQL 的校验规则是以校验字符集的方式实现的,即当存储或操作字符数据时,MySQL 将根据所选字符集的校验规则进行验证。可以告诉我们当前有哪些用户连接到我们的 MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。如果指定字符集和校验规则,就会使用指定的字符集和校验规则。使用该语句将彻底删除整个数据库,包括其中的所有表、索引、视图、存储过程、触发器等对象,所以在使用之前需要非常谨慎。

2025-03-02 21:08:57 832

原创 【Linux】TCP协议

本篇博客从 TCP 协议报头讲起,讲解了 TCP 协议的确认应答机制、窗口大小、六个标记位、连接管理机制、超时重传机制、流量控制、滑动窗口、拥塞控制、延迟应答、捎带应答、面向字节流、粘包问题等等。以上就是本篇博客的全部内容了,如果大家觉得有收获的话,可以点个三连支持一下!💖💝❣️。

2025-03-02 21:08:36 956

原创 【MySQL】MySQL基础

数据库是指在计算机系统中,用于存储和管理数据的集合。它可以被看作是一种特殊的文件系统,但与传统的文件系统不同的是,它能够更加高效地存储和管理大量结构化数据。数据库主要由两个方面的内容组成:数据和数据库管理系统(DBMS)。数据是指用户需要存储和管理的结构化数据,如客户信息、订单数据等。而数据库管理系统则是一种软件,它负责处理数据的存储、检索、管理和安全保护等工作。在现代应用程序中,数据库被广泛应用于数据存储和管理。

2025-03-01 00:01:10 713

原创 【leetcode】二分查找专题

题目链接。

2025-03-01 00:00:30 374

原创 【数据结构】并查集

本篇博客主要讲解了什么是并查集、并查集的模拟实现、并查集的应用:省份数量和等式方程的可满足性以及并查集的优化等等。那么以上就是本篇博客的全部内容了,如果大家觉得有收获的话,可以点个三连支持一下!💖💝❣️。

2025-02-24 13:45:29 1250

原创 【leetcode】二分算法模板总结

二分算法

2025-02-24 13:45:14 225

原创 【MySQL】安装MySQL

套接字(socket)是一种特殊的文件类型,用于实现进程之间的通信,MySQL 服务器监听这个本地套接字文件上的连接请求。然而,开启远程登录可能会降低 MySQL 服务器的安全性,因此在允许远程登录之前应该评估风险并采取相应的安全措施,如限制可访问的IP地址、采用安全连接等。因为本人 Linux 系统是 7.6 版本的,所以就下载了 147 行的 MySQL yum 源安装包,点击最中间的链接即可下载。MySQL 的服务端是一个网络服务器,它是采用 TCP 协议的,处于应用层,其默认端口号是 3306。

2025-02-22 10:36:07 1197

原创 【Linux】UDP协议

本篇博客主要讲解了端口号划分、知名端口号、nestat 和 pidof 指令、UDP 协议端格式、UDP 的特点、UDP 协议的使用注意事项以及基于 UDP 的应用层协议等等。那么以上就是本篇博客的全部内容了,如果大家觉得有收获的话,可以点个三连支持一下!💖💝❣️。

2025-02-22 10:35:53 761

原创 【Linux】HTTPS协议是如何保证数据安全的

HTTP协议的内容都是按照文本的方式明文传输的,这就导致在传输过程中出现一些被篡改的情况。很明显,这是不安全的,所以引入了HTTPS协议来解决这个问题。HTTPS ( Hyper Text Transfer Protocol Secure) 是HTTP协议的一种安全版本,通过使用SSL或TLS协议对HTTP协议的通信进行加密,从而保证通信的安全性。注:什么是安全呢?安全就是破解的成本远远大于破解的收益加密就是把明文(要传输的信息)进行⼀系列变换,生成密文。解密就是把密文再进行⼀系列变换,还原成明文。

2025-02-20 12:55:34 578

原创 【leetcode】滑动窗口

【代码】【leetcode】滑动窗口。

2025-02-20 12:55:14 374

原创 【leetcode】双指针:有效三角形的个数 and 和为s的两个数

【代码】【leetcode】双指针:有效三角形的个数 and 和为s的两个数。

2025-02-18 00:13:03 224

原创 【Linux】一文读懂HTTP协议:从原理到应用

HTTP(超文本传输协议)是一种应用层协议,用于在客户端和服务器之间传输超文本。它是Web的基础,可用于检索和提交信息,例如HTML文件、图像、样式表等。HTTP是无状态的,也就是每个请求都是独立的,服务器不会存储任何有关先前请求的信息。HTTP协议通常用于浏览器与Web服务器之间的通信。本篇博客主要讲解了什么是HTTP协议、认识URL、HTTP协议格式、请求方法、状态码、常见报头、主要特征以及常见的抓包工具和抓包工具的原理等等。以上就是本篇博客的全部内容了,如果大家觉得有收获的话,可以点个三连支持一下!

2025-02-18 00:12:37 772

原创 【leetcode】双指针:快乐数 and 盛最多水的容器

根据两个示例,可写出下图中两个循环,可见,不管是任何数,最终都会进入循环。循环分两种情况:1.循环数为1;2.循环数不为1,是其他一些数不断循环。(循环分为两种情况,不会出现其他情况;所以当我们执行平方求和这个操作811次之后,这中间肯定有一个结果是重复的,所以最后一定会死循环。鸽巢原理证明:n个巢,n+1只鸽子,则一定至少有一个巢里面有两只鸽子。同理,本题中,n最大为2。快慢双指针(我们之前学习链表的时候曾经学过,来看链表中时候有循环节点)就算数最大为9999999999(10个9),9。

2025-02-13 13:31:24 316

原创 【leetcode】双指针:三数之和 and 四数之和

【代码】【leetcode】双指针:三数之和 and 四数之和。

2025-02-13 13:31:00 285

原创 【leetcode】双指针:移动零 and 复写零

【代码】【leetcode】双指针:移动零 and 复写零。

2025-02-12 00:08:12 412

原创 【牛客】动态规划专题一:斐波那契数列

1、给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。2、给定一个字符串s和一组单词dict,在s中添加空格将s变成一个句子,使得句子中的每一个单词都是dict中的单词。返回的结果为[“cats and dog”, “cat sand dog”].这段代码实现了回溯法(深度优先搜索,DFS)来生成所有可能的单词拆分结果。例如:给定的字符串s =“catsanddog”,给定s=“leetcode”;

2025-02-12 00:07:54 303

原创 【Linux】通过网络版计算器来认识协议

本篇博客主要讲解了协议的概念、序列化和反序列化、守护进程以及网络版计算器的编写等。那么以上就是本篇博客的全部内容了,如果大家觉得有收获的话,可以点个三连支持一下!💖💝❣️。

2025-02-06 15:37:47 1019

原创 【LInux】揭开套接字编程的神秘面纱(下)

在揭开套接字编程神秘面纱(上)中,我们已经学习到了套接字编程的相关基础知识以及编写了基于UDP协议的echo服务器、指令服务器和简易版的公共聊天室等,那么我们现在就来基于TCP协议的套接字编程。listen 是一个用于在服务器端等待客户端连接的函数。listen 函数的第一个参数 sockfd 是监听套接字(listen socket),监听套接字是一种特殊类型的套接字,用于接受连接请求,并在连接建立时创建新的套接字。监听套接字通常用于服务器程序中,服务器在特定的端口上等待客户端的连接请求。

2025-02-04 01:33:22 948

原创 【C++】IO 流

class Apublic://explicit A(int a) // explicit不允许隐式类型转换A(int a):_a(a){}return _a;int main()// 内置类型转换成自定义类型A aa1 = 1;// 隐式类型转换 用1构造A临时对象,再拷贝构造aa1,优化后直接1构造aa1// 自定义类型转换成内置类型// 隐式类型转换,如果加上explicit,就会报错:不存在从A到int的适当转换函数// 强制类型转换。

2025-01-14 23:22:07 722

原创 【C++】STL 之空间配置器 | STL 总结

空间配置器,顾名思义就是为各个容器高效的管理空间(空间的申请与回收)的,在默默地工作。虽然在常规使用STL时,可能用不到它,但站在学习研究的角度,学习它的实现原理对我们有很大的帮助。注:空间配置器是内存池。直接向堆区申请内存的有 Windows 下的 VirtualAlloc 和 Linux 下的 brk,这个一般不符合我们的需求。而 malloc 是向堆区申请内存的函数,也本质是一个内存池,可用于整个程序的内存管理。STL 的空间配置器也是内存池,其是专门服务 STL 容器的内存管理,以提高效率。

2025-01-10 16:18:42 875

原创 【C++】类型转换

👉C语言中的类型转换👈在 C 语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型转换和显式类型转换。缺陷:转换的可视性比较差,所有的转换形式都是以一种相同形式书写,难以跟踪错误的转换。

2025-01-09 14:02:42 696

原创 【C++】特殊类设计

拷贝只会发生在两个场景中:以及,因此想要让一个类禁止拷贝,只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。C++98的做法是将拷贝构造函数与赋值运算符重载只声明不定义,并且将其访问权限设置为私有即可。原因:C++11的做法是C++11扩展了delete的用法,delete除了释放new申请的资源外,如果在默认成员函数后跟上=delete,表示让编译器删除掉该默认成员函数。👉设计一个只能在堆上创建对象的类👈实现方式:👉设计一个只能在栈上创建对象的类👈将构造函数私有化,然后设计静态方法

2025-01-07 21:04:07 1041

空空如也

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

TA关注的人

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