- 博客(144)
- 收藏
- 关注
原创 【MySQL】MySQL数据库入门指南
存储数据用文件就可以了,为什么还要弄个数据库?文件保存数据有以下几个缺点:1.文件的安全性问题2.文件不利于数据查询和管理3.文件不利于存储海量数据4.文件在程序中控制不方便数据库存储介质:磁盘内存为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。
2025-09-22 18:17:07
1191
2
原创 【MySQL】MySQL安装与配置全攻略
这篇文章主要介绍了在CentOS系统中卸载MariaDB/MySQL并安装官方MySQL的步骤。首先检查并停止MariaDB服务,卸载相关安装包;然后获取与系统版本匹配的MySQL官方YUM源并安装;最后对比安装前后的YUM源变化。文中详细列出了每个步骤的具体命令和注意事项,包括系统版本兼容性、权限问题及备份建议(如/etc/my.cnf和/var/lib/mysql数据)。适合需要清理默认数据库环境并安装官方MySQL的用户参考。
2025-09-22 17:33:52
290
原创 【滑动窗口】C++高效解决子数组问题
暴力枚举出所有的子数组和,发现可以利用双指针来解决。这里双指针是同向的,就能优化为滑动窗口。(1)先初始化left和right,用left和right来标记这个窗口的左右区间(2)进窗口(3)判断决定是否出窗口。
2025-09-10 21:12:50
849
1
原创 C++编程实战:高效解决算法与数据结构问题
本文整理了6道编程题解,涵盖数字统计、数组交集、快递费用计算、字符串消除、动态规划和字符串处理等算法问题。1. 统计区间内数字2的出现次数;2. 找出两个数组的交集元素;3. 计算快递费用,考虑重量和加急情况;4. 模拟栈实现相邻字符消除;5. 动态规划求解爬楼梯最小花费;6. 将输入单词的首字母转为大写。每道题都给出了核心代码实现,适合编程练习和算法学习。
2025-08-17 17:55:22
529
1
原创 【OJ】哈希相关练习题
用哈希表遍历两个数组,先遍历第二个,再遍历第一个时候,如果哈希表中存在,就直接插入都最后的存放结果的ret中,再减去哈希表中的存在相同那个。只需要固定当前的值,然后把它前面的值放在哈希表里面,判断一下哈希表里面有没有这个数,有就返回true,没有就返回false。把第一个数组放入哈希表中,遍历第二个数组时候,对比哈希表中,有重复的就记录在新的数组中。利用哈希表计数,当哈希表里面出现重复的数,就返回这个数,反之就把这个数加在哈希表里。只要题目中出现相同的数就返回true。
2025-08-13 00:14:23
977
1
原创 【递归、搜索和回溯】FloodFill 算法介绍及相关例题
FloodFill算法FloodFill就是洪水灌溉,解决的就是下面这样一种模型:解决性质相同的联通块问题,用的方法就是(1)dfs深度优先搜索遍历:一条道走到黑,直到不能再走,不能再走就倒回去;(2)bfs宽度优先搜索遍历:一层一层剥开。
2025-08-09 23:57:51
611
1
原创 【递归、搜索和回溯】综合练习深入理解回溯
本文介绍了递归、搜索和回溯算法在解决子集异或和、全排列II、电话号码字母组合和括号生成问题中的应用。通过分析决策树结构,设计全局变量和DFS函数,并利用剪枝优化效率。在子集异或和中运用异或消消乐特性;全排列II通过排序和布尔数组避免重复排列;电话号码问题建立数字与字母的映射关系;括号生成则基于左右括号数量限制进行剪枝。这些算法通过合理设计递归出口和回溯逻辑,有效解决了各类组合问题。
2025-08-09 00:34:05
1074
原创 【递归、搜索和回溯】穷举vs暴搜vs深搜vs回溯vs剪枝
之前提到递归、搜索和回溯介绍:【递归、搜索和回溯】递归、搜索和回溯介绍及递归类算法例题,继续来看着类型的题目。
2025-05-15 21:05:44
792
8
原创 【递归、搜索和回溯】二叉树中的深搜
上一篇提到递归、搜索和回溯介绍:【递归、搜索和回溯】递归、搜索和回溯介绍及递归类算法例题,继续来看着类型的题目。
2025-05-10 20:34:43
1248
11
原创 【递归、搜索和回溯】递归、搜索和回溯介绍及递归类算法例题
递归VS循环 什么时候用循环舒服?什么时候用递归舒服?递归和循环都是重复子问题,递归和循环之间可以相互转换递归图越复杂,递归就越舒服递归VS深搜递归展开图,其实就是对一棵树做一次深度优先搜索遍历(dfs)
2025-05-09 22:48:21
1172
8
原创 【高并发内存池】从零到一的项目之centralcache整体结构设计及核心实现
接上回的项目【高并发内存池】从零到一的项目之高并发内存池整体框架设计及thread cache设计继续分享项目创做过程及代码。
2025-05-09 22:48:00
1712
8
原创 【C++】智能指针&&RALL&&实现shared_ptr
什么是内存泄漏:内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏的危害:长期运行的程序出现内存泄漏,影响很大,如操作系统、后台服务等等,出现内存泄漏会导致响应越来越慢,最终卡死。// 1.内存申请了忘记释放// 2.异常安全问题Func();// 这里Func函数抛异常导致 delete[] p3未执行,p3没被释放.
2025-05-05 20:30:53
1177
6
原创 【动态规划】子序列问题
在上一篇有关动态规划的博客中,谈到做这类题目的步骤,有需要的可以点这个链接:【动态规划】斐波那契额数列模型。继续分享这个模型类型的题目。
2025-05-05 20:30:34
1009
1
原创 【高并发内存池】从零到一的项目之高并发内存池整体框架设计及thread cache设计
接上回的项目【高并发内存池】从零到一的项目:项目介绍、内存池及定长内存池的设计继续分享项目创做过程及代码。
2025-04-22 21:06:53
1140
14
原创 【C++】C++中异常及异常的使用
实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者基本就没办法玩了,所以实际中都会定义一套继承的规范体系。这样大家抛出的都是继承的派生类对象,捕获一个基类就可以了public:, _id(id){}protected:int _id;
2025-04-21 21:59:35
1196
11
原创 【链表】链表类型题目常用技巧及例题
画图 ->直观+形象+便于我们理解引入虚拟头结点->(1)便于处理边界情况 (2)方便对链表操作链表类的相关算法题,一般是不带头的单向链表,从第一个节点开始就开始存储有效数据,就会出现很多边界情况需要考虑。此时就可以重新创建一个虚头结点,它去链接题目中的链表。不要吝啬空间,大胆去定义变量快慢双指针判环找链表中环的入口找链表中倒数第n个节点。
2025-04-15 19:15:40
1091
3
原创 【高并发内存池】从零到一的项目之项目介绍、内存池及定长内存池的设计
当前项目是实现一个高并发的内存池,他的原型是google的一个开源项目tcmalloc,tcmalloc全称Thread-Caching Malloc,即线程缓存的malloc,实现了高效的多线程内存管理,用于替代系统的内存分配相关的函数(malloc、free)。这个项目是把tcmalloc最核心的框架简化后拿出来,模拟实现出一个自己的高并发内存池,目的就是学习tcamlloc的精华,这种方式有点类似之前学习STL容器的方式。
2025-04-13 16:45:24
875
6
原创 【动态规划】子数组&&子串系列
在上一篇有关动态规划的博客中,谈到做这类题目的步骤,有需要的可以点这个链接:【动态规划】斐波那契额数列模型。继续分享这个模型类型的题目。
2025-04-01 22:23:57
1105
5
原创 【动态规划】简单多状态的dp问题&&股票问题
在上一篇有关动态规划的博客中,谈到做这类题目的步骤,有需要的可以点这个链接:【动态规划】斐波那契额数列模型。继续分享这个模型类型的题目。
2025-04-01 21:16:53
1364
原创 【C++】C++11介绍&&列表初始化&&右值引用和移动语义
在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。
2025-03-29 22:46:13
1227
6
原创 【动态规划】路径问题
在上一篇有关动态规划的博客中,谈到做这类题目的步骤,有需要的可以点这个链接:【动态规划】斐波那契额数列模型。继续分享这个模型类型的题目。
2025-03-25 21:49:22
1723
4
原创 我的2024年度历程回顾
在过去的一年里,在C++编程语言的学习方面取得了显著进展。同时深入理解了标准库迭代器的应用场景以及如何利用std::cout对于动态规划类题目有了更深刻的认识,能够熟练运用状态转移方程解决复杂问题,如求解最长递增子序列长度。在C++编程语言的学习路径时,强调了实际操作的重要性1。理论知识固然重要,但通过编写代码来巩固所学概念同样不可或缺。对于希望深入理解这门强大而灵活的语言的人来说,在实践中不断尝试新功能和技术至关重要。针对算法的学习,则建议利用高质量资源进行系统化训练。
2025-01-23 23:59:56
660
4
原创 【动态规划】斐波那契额数列模型
状态表示;先创建一个表,叫dp表。dp表里面存的那个值所表示的含义。那么怎么确定状态表示呢?(1)题目要求(2)经验+题目要求(3)分析问题过程中发现重复子问题状态转移方程;dp[i]等于什么?每一道题目的状态转移方程是不一样的。初始化;初始化就是保证填表不越界。根据状态转移来填表的时候,不能越界访问。填表顺序;为了填写当前状态的时候,所需要的状态已经计算过了。确定返回值。题目要求+状态表示写代码的四大部分:1.创建dp表2.初始化3.填表。
2025-01-08 21:57:13
1304
2
原创 【C++】unordered系列关联式容器及其底层结构
有需要了解的可以点这个链接:unordered_map的文档说明unordered_map是存储<key, value>键值对的关联式容器,其允许通过keys快速的索引到与其对应的value。在unordered_map中,键值通常用于惟一地标识元素,而映射值是一个对象,其内容与此键关联。键和映射值的类型可能不同。
2024-12-30 21:34:13
1028
6
原创 【C++】map和set的封装
在插入中首先要比较data,但是并不知道比较的是不是key,所以就得先找到key,就用一个内部类来解决,如果是map就比较pair的first,如果是set就比较key。在插入中首先要比较data,与set不同的是,map中有pair,不知道比较的是不是key,为了找到key,同样用一个内部类来解决。对于map而言,怎么的T传的是pair,这里就要取pair里面的first,就是pair里面的key,就用到MapKeyOfT。在插入时候这里数据是data,并不知道是key还是pair,那么怎么比较大小?
2024-12-24 22:39:12
1419
13
原创 【C++】AVL树
{}// 该节点的左孩子// 该节点的右孩子// 该节点的双亲T _data;int _bf;// 该节点的平衡因子。
2024-12-03 22:23:33
1112
14
原创 【OJ】前K个高频单词和单词识别和两个数组的交集
定义两个变量,遍历两个数组,如果两个变量对应值都相同,相同的值就是两个数组的交集,记录下之后,同时都往后走。如果两个值不相同,小的那个值对应的往后走,直到一个数组遍历完。这里期望的是用second去比较,而不是用first,这时候,就得用一个仿函数:两个pair比较,按照scond去比较,排的是降序。还可以修改仿函数:当second相同的时候,按照字典序从小到大排。可以直接用sort来排一下频率,在取出前k个就行。这时候单词是按照字典序排列的,但是频率是乱的。以下两道题目均来自力扣。
2024-11-29 20:55:52
583
3
原创 【C++】map和set
用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代表键值,value表示与key对应的信息。比如:现在要建立一个英汉互译的字典,那该字典中必然有英文单词与其对应的中文含义,而且,英文单词与其中文含义是一一对应的关系,即通过该应该单词,在词典中就可以找到与其对应的中文含义。key找到与key对应的value然后返回其引用,不同的是:当key不存在时,operator[]用默认value与key构造键值对然后插入,返回该默认value,at()函数直接抛异常。
2024-11-28 22:27:18
1642
1
原创 【C++】二叉搜索树
map和set特性需要先铺垫二叉搜索树,而二叉搜索树也是一种树形结构二叉搜索树的特性了解,有助于更好的理解map和set的特性二叉树中部分面试题稍微有点难度,在前面讲解大家不容易接受,且时间长容易忘有些OJ题使用C语言方式实现比较麻烦,比如有些地方要返回动态开辟的二维数组,非常麻烦。
2024-11-26 22:08:06
1195
原创 【C语言】预处理
C语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。__FILE__ //进⾏编译的源⽂件__LINE__ //⽂件当前的⾏号__DATE__ //⽂件被编译的⽇期__TIME__ //⽂件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义1000register//为 register这个关键字,创建⼀个简短的名字for;;//⽤更形象的符号来替换⼀种实现break;case。
2024-10-05 22:00:13
1267
2
原创 【C语言】编译和链接
我们在 test.c 文件中每一次使用 Add 函数和 g_val 的时候必须确切的知道 Add 和 g_val 的地址,但是由于每个文件是单独编译的,在编译器编译 test.c 的时候并不知道 Add 函数和 g_val变量的地址,所以暂时把调用 Add 的指令的目标地址和 g_val 的地址搁置。比如:目标文件的格式elf,链接底层实现中的空间与地址分配,符号解析和重定位等,如果你有兴趣,可以看《程序的自我修养》⼀书来详细了解。链接是一个复杂的过程,链接的时候需要把一堆⽂件链接在一起才生成可执行程序。
2024-10-05 19:51:06
1028
原创 【C语言】指针详解(三)
所以,根据数组名是数组首元素的地址这个规则,二维数组的数组名表示的就是第一行的地址,是一维数组的地址。根据上面的例子,第一行的一维数组的类型就是 int [5] ,所以第一行的地址的类型就是数组指针类型。那就意味着二维数组传参本质上也是传递了地址,传递的是第一行这个一维数组的地址,那么形参也是可以写成指针形式的。确实打印出来了地址,所以函数是有地址的,函数名就是函数的地址,当然也可以通过 &函数名 的方式获得函数的地址。那数组指针变量应该是:存放的应该是数组的地址,能够指向数组的指针变量。
2024-10-04 22:43:15
853
原创 【C语言】指针详解(二)
数组是可以传递给函数的,首先从一个问题开始,我们之前都是在函数外部计算数组的元素个数,那我们可以把函数传给一个函数后,函数内部求数组的元素个数吗?这里我们使用 &arr[0] 的方式拿到了数组第一个元素的地址,但是其实数组名本来就是地址,而且是数组首元素的地址,我们来做个测试。,数组元素的访问在编译器处理的时候,也是转换成首元素的地址+偏移量求出元素的地址,然后解引用来访问的。,这里的数组名表示整个数组,取出的是整个数组的地址(整个数组的地址和数组首元素的地址是有区别的)
2024-10-04 18:46:44
1206
原创 【C语言】指针详解(一)
就是为了不能被修改,如果p拿到n的地址就能修改n,这样就打破了const的限制,这是不合理的,所以应该让p拿到n的地址也不能修改n,那接下来怎么做呢?如果明确知道指针指向哪⾥就直接赋值地址,如果不知道指针应该指向哪⾥,可以给指针赋值NULL.NULL 是C语言中定义的一个标识符常量,值是0,0也是地址,这个地址是无法使用的,读写该地址会报错。代码中n是不能被修改的,其实n本质是变量,只不过被const修饰后,在语法上加了限制,只要我们在代码中对n就行修改,就不符合语法规则,就报错,致使没法直接修改n。
2024-09-30 22:36:47
1613
1
原创 【C语言】操作符
即使有了操作符的优先级和结合性,我们写出的表达式依然有可能不能通过操作符的属性确定唯一计算路径,那这个表达式就是存在潜在风险的,建议不要写出特别负责的表达式。有问题请指出,大家一起进步!!!
2024-09-29 22:41:47
1082
2
原创 【C语言】函数递归
把Print(1234) 打印1234每一位,拆解为首先Print(123)打印123的每一位,再打印得到的4 ,把Print(123) 打印123每一位,拆解为首先Print(12)打印12的每一位,再打印得到的3,直到Print打印的是一位数,直接打印就行。当我们n输⼊为50的时候,需要很长时间才能算出结果,这个计算所花费的时间,是我们很难接受的,这也说明递归的写法是非常低效的,那是为什么呢?再稍微分析一下,当 n<=1 的时候,n的阶乘是1,其余n的阶乘都是可以通过上述公式计算。
2024-09-28 21:44:43
1212
2
原创 【C语言】VS调试
bug本意是昆虫”或“虫子”,现在一般是指在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题,简称程序漏洞。“Bug”的创始⼈格蕾丝·赫柏(Grace Murray Hopper),她是一位为美国海军⼯作的电脑专家,1947年9月9日,格蕾丝·赫柏对Harvard Mark II设置好17000个继电器进行编程后,技术人员正在进行整机运行时,它突然停止了工作。于是他们爬上去找原因,发现这台巨大的计算机内部一组继电器的触点之间有一只飞蛾,这显然是由于飞蛾受光和热的吸引,飞到了触点上,然后被高电压击死。
2024-09-27 20:59:15
943
原创 【C语言】函数
了解了库函数,我们的关注度应该聚焦在自定义函数上,自定义函数其实更加重要,也能给程序员写代码更多的创造性。⼀般我们在使用函数的时候,直接将函数写出来就使用了。//判断⼀年是不是闰年int is_leap_year(int y)//函数的定义return 1;//函数的调⽤printf("闰年\n");elseprintf("⾮闰年\n");return 0;函数的定义在函数调用之前,没啥问题.int main()
2024-09-26 23:17:12
1016
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅