- 博客(114)
- 收藏
- 关注
原创 项目——视频共享系统&&测试
该系统采用前后端分离架构,后端使用C++搭建服务器,前端采用HTML+Vue框架。系统实现了视频上传、播放、管理和搜索等核心功能,通过数据库存储视频元数据,文件系统存储视频资源。测试报告显示系统功能完整,但存在并发性能问题需要优化。 核心功能: 视频管理模块:支持增删改查操作 文件存储模块:保存视频和封面图片 搜索功能:支持关键词模糊匹配 前端交互:采用Vue实现动态数据绑定 测试结果: 功能测试:通过自动化测试验证了所有基础功能 性能测试:并发处理能力不足,数据库连接存在瓶颈
2025-07-03 20:42:00
1268
原创 项目——高并发内存池
所谓“池化技术”:就是程序先向系统申请过量的资源,然后自己管理,以备不时之需。之所以要申请过量的资源,是因为每次申请该资源都有较大的开销,不如提前申请好了,这样使用时就会变得非常快捷,大大提高程序运行效率。在计算机中,有很多使用“池”这种技术的地方,除了内存池,还有连接池、线程池、对象池等。以服务器上的线程池为例,它的主要思想是:先启动若干数量的线程,让它们处于睡眠状态,当接收到客户端的请求时,唤醒池中某个睡眠的线程,让它来处理客户端的请求,当处理完这个请求,线程又进入睡眠状态。
2025-04-24 20:59:46
1144
原创 面试150——第五周
本文总结了二叉树相关算法题的递归解法,包括翻转二叉树、对称二叉树、路径总和、二叉树展开为链表等经典问题。对于二叉搜索树,介绍了利用中序遍历有序性解决最小绝对差、第K小元素等问题。还涵盖了岛屿数量等DFS应用场景。每种解法都配有简洁的代码实现,通过递归思路处理树形结构问题,并注意边界条件和特殊情况处理。文章提供了从基础到进阶的二叉树问题解决方案,适合算法学习者参考。
2026-02-08 20:54:40
566
原创 面试150——第四周
本文总结了多个链表和栈相关的算法题解,包括最小栈、逆波兰表达式、基本计算器、环形链表检测、两数相加、随机链表复制、链表反转(普通和K组)、删除倒数第N个节点、删除重复元素、链表旋转、链表分割以及LRU缓存实现。主要采用双指针、栈结构、递归和模拟等解法,涉及链表操作的核心技巧如快慢指针、头插法、哨兵节点等。对于复杂计算问题,通过运算符优先级处理和状态机思想来简化代码。LRU缓存则结合哈希表和双向链表实现高效存取。
2026-01-26 21:10:08
457
原创 面试150——第三周
本文汇总了多个经典算法问题的解法思路,包括: 生命游戏的两种实现(辅助数组和位运算优化) 赎金信、同构字符串、单词规律等字符串匹配问题的哈希解法 进制转换(负二进制和任意进制转换) 字母异位词相关问题的分组处理 两数之和、快乐数等经典哈希应用 区间合并和插入问题的处理技巧 有效的括号和简化路径等栈结构应用 各解法均注重时间/空间复杂度优化,如使用位运算减少空间开销、快慢指针替代哈希表等。代码实现包含C++标准库的现代用法(如C++23的ranges视图),并提供了详细的边界条件处理。
2026-01-04 20:44:14
851
原创 面试150——第二周
本文总结了多个数组与字符串相关的算法题解,包括: 除自身外数组乘积(前缀积优化) 加油站问题(折线图最低点法) 分发糖果(分组循环+等差数列求和) 罗马数字与整数转换(模拟+哈希表) 字符串处理(公共前缀、反转单词、验证回文等) 滑动窗口应用(最小子数组、子串匹配) 矩阵操作(螺旋遍历、图像旋转) 数独验证(行列格三重检查) 重点包括双指针技巧、滑动窗口优化、分组循环策略以及矩阵操作的规律发现。每种解法都提供了时间复杂度优化思路,如O(1)空间的前缀积、线性时间的加油站解法等。
2025-12-07 20:38:12
842
原创 test——接口自动化测试
本文介绍了接口测试的基本概念和自动化实践方法。主要内容包括:1. 接口类型与测试要点,区分程序内部和外部接口,关注请求与响应参数;2. HTTP接口测试流程,包含接口分析、用例编写、环境搭建等步骤;3. Python技术栈使用,包括requests发送请求、pytest管理用例、yaml管理数据、allure生成报告等工具;4. 实战案例演示,通过博客系统接口测试展示登录、列表、详情等接口的自动化实现;5. 测试架构设计,涵盖日志封装、数据管理、用例顺序控制等最佳实践。文章提供了完整的接口自动化解决方案
2025-11-23 10:58:33
756
原创 hot100&&面试150——十二周
本文总结了多种经典算法问题的解法,包括:1.最长回文子串(动态规划、中心扩展);2.最长公共子序列(动态规划);3.多数元素(投票算法);4.寻找重复数(快慢指针);5.数组合并/去重(双指针);6.股票买卖(动态规划);7.跳跃游戏(区间法);8.H指数(排序/计数);9.随机集合(哈希+数组)。每种解法都提供了关键思路和实现要点,涵盖了动态规划、双指针、哈希等多种算法技巧,适合算法学习者参考。
2025-10-27 19:59:20
766
原创 Qt——界面优化
本文介绍了Qt中的QSS(Qt Style Sheets)样式表系统及其应用。QSS类似于前端CSS,用于界面美化,但两者是不同工具。QSS优先级高于C++代码样式设置,语法为"选择器{属性:值}"。文章详细讲解了QSS选择器类型(全局、类、ID等)、子控件选择器和伪类选择器,并提供按钮、复选框、输入框等控件的样式设置示例。同时介绍了通过qrc机制加载外部QSS文件的方法。此外,文章还讲解了Qt绘图API,包括QPainter、QPaintDevice、QPen和QBrush的使用方法,
2025-10-27 19:17:00
929
原创 Qt——系统相关
本文介绍了Qt框架中的事件处理机制、文件操作、多线程编程、网络通信等核心功能。在事件处理方面,Qt封装了不同操作系统的接口,通过QEvent子类实现控件事件处理;文件操作提供了QFile等类实现跨平台文件读写;多线程部分详细讲解了QThread、锁机制、条件变量和信号量的使用;网络通信涵盖了UDP、TCP、HTTP协议的实现,包括套接字编程和HTTP请求处理。此外还介绍了声音播放功能。文章通过具体代码示例展示了Qt如何简化跨平台开发,使开发者能专注于业务逻辑实现。
2025-10-26 14:03:57
677
原创 Qt——窗口
本文介绍了Qt中QMainWindow窗口的基本组件及其使用方法。主要内容包括:菜单栏(QMenuBar)的创建、菜单项和子菜单的添加、快捷键设置;工具栏(QToolBar)的创建和布局;状态栏(QStatusBar)的消息显示;浮动窗口(QDockWidget)的实现;以及各种对话框(QDialog)的使用方法,包括消息对话框(QMessageBox)、颜色对话框(QColorDialog)、文件对话框(QFileDialog)、字体对话框(QFontDialog)和输入对话框(QInputDialog)
2025-10-21 16:15:38
1047
原创 Qt——控件
本文系统介绍了Qt框架中的各类控件及其使用方法。主要内容包括:1.基础控件概念与分类,如按钮、文本框等;2.控件常见属性操作,如enabled状态控制、geometry位置调整;3.多种控件详细介绍,如按钮类、显示类、输入类等;4.多元素控件如列表、表格、树形控件的操作;5.容器类控件的应用;6.布局管理器的使用技巧。文章通过大量代码案例演示了控件的具体应用,如点餐系统、倒计时器、表单设计等,并详细说明了属性设置、信号处理等关键技术点。最后还介绍了布局管理器在界面设计中的重要性,帮助开发者创建更美观
2025-10-19 16:22:08
879
原创 hot100——第十一周
本文总结了动态规划在算法问题中的多种应用场景及解法,包括目标和、零钱兑换、完全平方数、单词拆分、最长递增子序列等经典问题。核心思路是将问题转化为状态转移方程,通过递归、记忆化或递推实现。文章详细分析了每种问题的状态定义、转移方程、边界条件及优化方法(如一维数组优化),并提供了Python和C++代码示例。重点包括:01背包问题变种(目标和、分割等和子集)、完全背包(零钱兑换)、字符串匹配(编辑距离)等,帮助读者系统掌握动态规划解题技巧。
2025-09-21 19:48:13
728
原创 hot100——第十周
本文总结了多个算法问题的解法,包括: 股票买卖问题 - 通过贪心算法寻找最低价和最大利润 跳跃游戏系列 - 使用最大距离判断可达性,并用"修桥"比喻解决跳跃次数问题 分治算法 - 用快排思想解决第K大元素问题 堆应用 - 处理前K高频元素和数据流中位数问题 动态规划 - 解决打家劫舍系列问题,包括环形房屋情况 所有解法都提供了代码实现和思路分析,涵盖了贪心、分治、堆和动态规划等经典算法思想。
2025-09-02 17:00:47
730
原创 C++——特殊类设计 && 类型转换 && IO流
本文介绍了C++中的特殊类设计、类型转换和IO流操作。在特殊类设计部分,讲解了如何设计不能被拷贝、只能在栈/堆上创建、不能被继承以及单例模式的类实现方法。类型转换部分对比了C和C++的类型转换方式,详细说明了C++的四种类型转换操作符。IO流部分涵盖了二进制读写和文本读写的实现方法,包括使用stringstream进行字符串拼接与解析。文章通过代码示例展示了各种技术实现,并指出了注意事项,如二进制读写时需避免浅拷贝问题。
2025-08-17 17:42:10
1152
原创 C++——异常&&智能指针
文章摘要: 本文系统介绍了C++异常处理机制和智能指针技术。在异常处理部分,详细讲解了throw抛异常、try-catch捕获机制、异常匹配规则、多态异常处理以及异常安全等问题。在智能指针部分,重点分析了auto_ptr、unique_ptr和shared_ptr的实现原理及使用场景,深入探讨了shared_ptr的线程安全、循环引用问题和定制删除器等关键技术。文章通过大量代码示例说明了如何利用异常机制和智能指针解决资源管理、内存泄漏等常见问题,同时比较了不同技术的优缺点,为C++开发者提供了实用的编程指导
2025-08-15 14:17:24
694
原创 Qt——信号和槽
本文介绍了Qt框架中的信号与槽机制。信号由控件发出,通过connect函数与处理函数(槽)建立连接,实现事件响应。文章详细讲解了connect的使用方法、自定义信号和槽的实现、带参数的信号槽连接规则,以及使用lambda表达式简化连接的方式。同时解释了信号槽机制的设计理念,包括一对多连接的实用性,并介绍了disconnect断开连接的方法。通过代码示例展示了如何实现按钮点击响应和窗口标题修改等功能,体现了Qt信号槽机制在GUI编程中的灵活应用。
2025-08-12 16:09:30
911
原创 C++——C++11
摘要:本文详细介绍了C++11的新特性,包括初始化列表、变量声明(auto/decltype)、新增容器(array/forward_list等)、右值引用与移动语义、默认成员函数扩展、完美转发、lambda表达式、可变参数模板、包装器(function/bind)、线程库(thread/mutex/atomic)等核心内容。重点解析了右值引用如何通过移动构造提升效率,lambda表达式简化仿函数实现,包装器统一调用方式,以及多线程编程中的同步机制。通过代码示例展示了各特性的实际应用场景
2025-08-12 16:07:48
989
原创 Qt——入门
本文介绍了Qt开发环境的安装配置和基础开发流程。主要内容包括:1) Qt环境安装建议使用官方SDK镜像源;2) Qt项目创建步骤,包括选择构建工具(qmake)、父类(QWidget)和界面设计方式(Formfile或代码);3) 通过示例演示了Label、LineEdit、PushButton等控件的创建和使用方法;4) 讲解了Qt中的对象树机制和内存管理;5) 介绍了Qt的坐标体系和控件移动方法。文章还涉及信号槽机制、中文编码处理等常见问题,适合Qt初学者快速入门。
2025-08-07 16:29:53
982
原创 hot100——第九周
本文介绍了多个字符串和数组处理问题的解法,包括:1. 字符串单词反转的双指针和stringstream方法;2. 寻找两个有序数组中位数的枚举和二分查找解法;3. 有效括号匹配的栈和优化方法;4. 最小栈的双栈和pair实现方案;5. 字符串解码的栈和递归解法;6. 每日温度的单调栈解法;7. 柱状图最大矩形的单调栈及其优化方法。每种解法都给出了详细思路和代码实现,并分析了时间复杂度和优化空间。
2025-07-28 21:20:29
600
原创 Python——入门
本文摘要:Python变量定义无需声明类型,支持自动类型推导;基本数据类型包括int、float、str、bool,其中int支持自动扩容。对比C++,Python具有动态类型特性但需注意可读性问题。介绍了运算符、条件语句、循环结构及函数定义,强调函数作用域和返回值的重要性。数据结构部分详细讲解列表(可变)、元组(不可变)和字典(键值对)的操作与区别。文件操作重点说明打开/关闭的必要性及读写方法,推荐使用with语句管理资源。最后演示了第三方库的应用实例,包括二维码生成、Excel处理和键盘监听播放音频的功
2025-07-27 21:12:47
905
原创 hot100——第八周
本文总结了多个算法问题的解法,主要包括:1)Trie前缀树的两种实现方式(set和多叉树);2)全排列和子集问题的DFS回溯解法;3)字符串相乘的两种处理方法;4)电话号码字母组合、组合总和、括号生成等问题的DFS解法;5)单词搜索、分割回文串、N皇后等经典问题的解法;6)二分查找在搜索插入位置、旋转排序数组、二维矩阵等场景下的应用。每种解法都提供了核心思路和关键代码实现。
2025-07-20 17:29:37
1051
原创 Linux——动静态库
本文介绍了动静态库的概念、制作与使用。静态库是多个.o文件的集合(.a格式),编译时内容被拷贝到可执行程序中;动态库(.so格式)在运行时加载。制作动态库需-fPIC生成位置无关代码,通过-shared打包。使用时需让系统找到库文件,可通过环境变量、软链接等方式实现。动态库加载采用"基址+偏移量"机制,通过页表映射实现函数调用。文中还解释了逻辑地址与虚拟地址的关系,以及CPU通过PC指针执行指令的过程。最后说明动态库管理采用"先描述后组织"的方式,通过内核数据结构跟踪
2025-07-18 11:18:51
965
原创 hot100——第七周
二叉树和图的常见算法问题及解法。二叉树部分包括:将二叉树展开为链表(三种解法)、根据前序中序序列构造二叉树、路径总和III(哈希表法)、最近公共祖先(递归法)、最大路径和(递归法)。图论部分包括:岛屿数量(DFS)、腐烂橘子(BFS)和课程表(DFS/BFS拓扑排序)。每种问题都给出了核心思路和代码实现,重点在于递归思想和搜索算法的应用。
2025-07-06 22:24:12
690
原创 hot100——第六周
本文总结了二叉树相关的9种常见算法解法,包括: 遍历方法(前序/中序/后序)的递归和迭代实现 二叉树深度计算 二叉树翻转 对称性判断 直径计算 层序遍历 有序数组转二叉搜索树 二叉搜索树验证 右视图获取 每种解法都提供了核心思路和代码示例,采用递归和迭代两种方式实现。重点包括:中序遍历使用栈结构、层序遍历使用队列、验证二叉搜索树的三种方法(前/中/后序)、以及通过深度优先搜索解决右视图问题。这些算法涵盖了二叉树的基本操作和常见面试题型。
2025-06-29 15:37:40
878
原创 hot100——第六周
总结了链表常见问题的经典解法,包括递归和迭代两种实现方式。主要内容涵盖:合并有序链表(递归比较节点值)、两数相加(处理进位)、删除倒数第N个节点(快慢指针)、两两交换节点(创建哨兵节点)、K个一组翻转(分组逆序)、随机链表复制(哈希映射/节点插入)、链表排序(归并排序)和合并K个有序链表(小根堆/归并)。每种解法都提供了清晰的思路描述和代码实现,并注意处理边界条件。递归方法强调分解问题,迭代方法注重指针操作,部分题目还优化了空间复杂度。
2025-06-21 16:09:29
780
原创 hot100——第五周
本文总结了常见链表和矩阵问题的算法解法。主要内容包括:矩阵置零的标记法优化、螺旋矩阵的三种实现方式(标记法、步数计算、边界模拟)、旋转图像的坐标转换技巧、二维矩阵搜索的排除法。链表部分涵盖相交节点查找、反转链表(递归/迭代/头插法)、回文链表判断(中间节点+反转)、环形链表检测(快慢指针)及入环节点定位(数学推导)。所有解法均提供了代码实现和思路分析,强调算法优化和边界处理。
2025-06-16 14:29:58
941
原创 hot100——第四周
本文总结了常见数组/字符串问题的解法: 滑动窗口类(无重复字符子串、字母异位词、最小覆盖子串) 哈希表优化(和为K的子数组、除自身乘积) 单调队列(滑动窗口最大值) 区间合并(排序+模拟) 原地哈希(缺失正数) 前缀和/动态规划(最大子数组和) 核心思想包括:双指针滑动窗口、哈希表优化查找、排序预处理以及空间优化技巧。每种问题都提供了多种解法思路和代码实现,并标注了时间复杂度。
2025-06-07 16:18:05
769
原创 MySQL——视图 && 用户管理 && 语言访问
摘要:本文介绍了MySQL视图的概念与操作,包括创建、修改和删除视图的注意事项,以及视图与原表的双向影响机制。同时讲解了MySQL用户管理和权限控制,详细说明了如何创建用户、设置权限及回收权限。此外,文章还演示了如何使用C++连接MySQL数据库并进行基本操作,包括初始化连接、执行SQL语句和处理查询结果。最后简要提及了MySQL图形界面工具的使用和数据库连接池的设计思路。
2025-06-05 21:15:08
1114
原创 MySQL——事务
MySQL事务机制解析 摘要:本文系统介绍了MySQL事务的概念和特性。事务由一组DML语句组成,具有原子性、持久性、隔离性和一致性(ACID)四大特性。文章重点分析了事务的隔离级别(读未提交、读提交、可重复读和串行化)及其解决的问题,包括脏读、不可重复读和幻读等并发问题。通过MVCC(多版本并发控制)机制和ReadView实现事务隔离,解释了可重复读与读提交的本质区别在于读视图的更新策略。同时详细介绍了事务的版本支持(仅InnoDB引擎)、提交方式(自动/手动提交)以及undo日志在事务回滚中的作用。
2025-06-02 20:53:54
1280
2
原创 剑指offer && hot100 第三周
文章介绍了多个算法问题的解法,主要包括滑动窗口解决连续正数序列求和(和为S)、字符串左旋转的四种方法(模拟、拼接、技巧、逆置)、翻转单词序列的双指针与逆置技巧、按之字形打印二叉树的两种方法(标记层数与栈队列结合)、二叉搜索树第k节点的递归与非递归解法(中序遍历)、两数之和的哈希解法、字母异位词分组的排序哈希法、最长连续序列的哈希查找法、移动零的双指针处理、盛水容器的双指针最大面积计算,以及三数之和的排序双指针解法。
2025-06-01 19:45:08
389
原创 MySQL——索引
因为mysqld使用page方案,在mysqld内部势必存在一个一个的page,为了方便管理这些page,先描述,在组织:mysqld会创建page对象,里面保存着page相关信息:数据,大小...还要保存前一个page与后一个page的地址,管理时使用“链表”的方式将page一个一个链接起来,只需找到头节点就能找到所有的page;磁盘是计算机中的一个机械设备,相比于计算机其他电子元件,磁盘效率是比较低的,在加上IO本身的特征,可以知道,如何提交效率,是认识 MySQL 索引的一个重要话题。
2025-05-27 21:27:17
900
原创 剑指offer第二周
本文总结了多种常见算法问题的解法,包括链表操作(删除重复节点、找公共节点)、二叉树遍历(层序、深度、路径)、栈应用(最小栈、压入弹出序列)、排序查找(最小K个数、子数组最大和)、位运算(出现一次的数字)等。关键解法如:快慢指针处理链表重复节点、双栈实现最小栈、DFS/BFS遍历二叉树、动态规划求最大子数组和、位运算找唯一数字等。每种解法都提供了代码实现和思路分析,涵盖数据结构与算法的核心考点。
2025-05-24 16:12:39
619
原创 MySQL——复合查询&&表的内外连
本文回顾了SQL查询中的多种技术,包括基本查询、复合查询、多表查询、自连接、子查询、合并查询以及表的内外连接。基本查询涉及条件筛选、排序和聚合函数的使用,如查询工资高于500或岗位为MANAGER的雇员,并按部门号和工资排序。多表查询通过连接不同表获取数据,如显示雇员名、工资及部门名。自连接用于在同一表内进行查询,如查找员工的上级领导。子查询嵌入在其他SQL语句中,用于复杂条件筛选,如显示与SMITH同部门的员工。合并查询使用UNION和UNION ALL合并多个SELECT结果。内外连接则用于处理表之间的
2025-05-23 19:41:03
799
原创 MySQL——基本查询&&内置函数
本文详细介绍了数据库操作中的CRUD(增查改删)基本操作,包括创建表、插入数据、查询数据、更新数据和删除数据的具体方法。在查询部分,重点讲解了如何使用SELECT语句进行全列查询、指定查询、去重查询以及结合WHERE子句进行条件筛选。此外,还介绍了ORDER BY排序、LIMIT分页、GROUP BY分组聚合统计等高级查询技巧。在更新和删除部分,提供了单行和多行数据操作的示例。最后,文章还涉及了内置函数(如日期函数、字符函数、数学函数)的使用,并通过实战OJ题目展示了如何应用这些操作解决实际问题。
2025-05-20 20:28:33
1465
原创 剑指offer第一周
本文介绍了多个算法问题的解法,涵盖了数组、链表、二叉树等数据结构。主要内容包括:二维数组中的查找通过优化遍历策略提高效率;旋转数组的最小数字使用二分查找;调整数组顺序使奇数位于偶数前面采用插入排序思想;数组中出现次数超过一半的数字通过候选法解决;替换空格通过模拟操作实现;从尾到头打印链表使用递归或头插法;重建二叉树通过递归划分区间;矩形覆盖问题与斐波那契数列相关;链表中倒数第k个结点使用双指针;二进制中1的个数通过位运算计算;链表反转使用三指针或递归;合并两个排序链表使用双指针或递归;树的子结构通过递归判断
2025-05-17 16:22:51
830
原创 MySQL——数据类型&&表的约束
本文详细介绍了MySQL中的数据类型及其约束,包括数值类型(如tinyint、bit、float、decimal)、字符类型(如char、varchar)、日期和时间类型(如date、datetime、timestamp)以及选择类型(如enum、set)。每种数据类型都有其特定的使用场景和限制,如tinyint用于小范围整数,bit用于二进制数据,float和decimal用于浮点数,char和varchar用于字符串存储。此外,文章还探讨了表的约束,如null、default、comment、zerof
2025-05-13 19:58:13
788
原创 笔试题——第七周
两层for循环一个一个比较枚举统计出队数(超时)先排升序,再以数组的每个数(假设为a[i])为基准值统计出[a[i] + l ,a[i] +r]区间的个数,此时采取两次二分分别求出左端点与右端点;与的思路一样:先排序,再用滑动窗口统计出 [0,r]和 [0,l-1]区间的队数后相减就是 [l,r]中的队数(注意统计合法的队数时是:right - left 而不是 right -left + 1)解法:找规律当n=1时,A->B的操作是1,A->C的操作是2;
2025-05-08 20:48:02
693
原创 MySQL——数据库基础&&操作
本文简要介绍了MySQL数据库的基本概念、架构、SQL指令分类、存储引擎以及数据库和表的基本操作。MySQL是一种基于客户端-服务器模式的网络服务,用户通过SQL语句间接操作数据库,而mysqld服务端直接处理这些请求。文章还讨论了数据库的创建、编码集与校验规则、备份与恢复、查看与修改等操作,并强调了数据库管理的重要性。此外,文章还涉及了表的创建、删除、查看和修改等操作,为初学者提供了MySQL数据库的基础知识概览。
2025-05-05 21:45:30
1524
原创 笔试题——第六周
遍历时哈希标记创建小根堆:先把字符数存存进去:每次取出两个最小的数进行构造,再把构造好的新节点丢到堆里面,重复以上操作...直到堆里面只有1个节点就停止...怎么收集字符长度?每次取出的两个最小的数进行累加后直到循环停止,我们便找到了最短字符长度竟然是三‘状态’的动态规划,长见识了~
2025-04-29 17:51:23
733
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅