- 博客(54)
- 收藏
- 关注
原创 【手把手教你刷力扣14】递归recursion(含力扣真题)
本文介绍了递归的基本概念和应用实例。递归是指函数直接或间接调用自身,包含四个关键要素:参数、返回值、终止条件和递归拆解。通过斐波那契数列、链表反转和字符串反转三个经典例题,展示了递归的实现方法。斐波那契数列的递归解法时间复杂度为O(N),空间复杂度为O(N),由递归栈深度决定。链表和字符串反转问题则通过递归实现了简洁的解法,其中字符串反转使用双指针递归完成原地修改。这些案例体现了递归在算法设计中的核心作用,尤其适用于分治和回溯类问题。
2025-06-14 17:02:26
505
原创 【手把手教你刷力扣13】滑动窗口Sliding Window(含力扣真题)
本文介绍了滑动窗口算法的应用场景及两个典型案例。滑动窗口主要用于减少循环次数,适用于解决数组/字符串中定长子区间的最值问题。 209题展示了寻找满足条件的最小长度子数组的解法:通过双指针动态调整窗口大小,计算窗口总和并与目标值比较,时间复杂度O(n)。1456题则演示了固定窗口的滑动应用,统计窗口内元音字母的最大数量。两题均采用滑动窗口思想,前者窗口大小可变,后者窗口固定,展现了该算法的灵活性。解法代码简洁高效,体现了滑动窗口在优化问题中的优势。
2025-06-14 17:02:03
427
原创 【QT】字符串类应用与常用基本数据类型
本文介绍了Qt字符串类QString的基本操作与应用方法。主要包括:字符串组合(使用"+"、append()、sprintf()和arg()函数)、字符串查询(startsWith()、endsWith()、contains()函数)、类型转换(toInt()、toDouble()等)以及大小写敏感的字符串比较。文章还展示了Qt基本数据类型与ASCII码转换方式,通过代码示例直观呈现了各方法的实际应用场景。这些功能为Qt开发中的字符串处理提供了完整的解决方案。
2025-06-13 15:59:40
271
原创 【Qt】工具介绍和信号与槽机制
本文介绍了Qt Creator界面及其核心机制——信号与槽。Qt工具包含Qt Assistant、Designer等组件,界面开发主要基于QMainWindow、QWidget和QDialog三类。信号与槽机制是Qt的事件处理方式:信号是事件触发的函数声明,槽是响应信号的实现函数。通过QObject::connect()建立连接,支持多种关联方式。虽然提高了灵活性,但会带来一定性能损耗。文章以圆球体积计算为例,展示了当文本框内容变化时自动触发计算槽函数的完整实现,包括布局管理和信号槽连接。该机制体现了Qt对
2025-06-13 15:58:56
929
原创 【Qt】Qt控件
本文介绍了Qt中常用的几种布局控件和按钮控件的使用方法。主要内容包括: 布局控件: QVBoxLayout垂直布局,通过addWidget()添加控件 QHBoxLayout水平布局,可嵌套在QVBoxLayout中使用 QGridLayout网格布局,通过addWidget()设置控件位置和占用行列数 QFormLayout表单布局,用于创建标签+输入框的表格布局 按钮控件: 演示了QPushButton的两种实现方式(全在源文件实现或头文件定义+源文件实现) 通过信号槽机制实现按钮点击事件,修改窗口背景
2025-06-13 15:58:14
1076
原创 【QT面试题】(三)
Qt核心机制与应用摘要 信号槽机制 优点:提供灵活绑定(多对多关系)、确保类型安全、降低耦合度;缺点:执行效率较低,尤其多线程环境需排队处理。 文件与数据流 QTextStream处理文本数据(Unicode编码,支持格式控制);QDataStream支持复杂类型持久化(含状态检测和字节序控制),适用于二进制数据处理。 对话框显示 show()显示非模态对话框(不阻塞线程);exec()显示模态对话框(阻塞线程,开启事件循环),需注意对象生命周期管理。 多线程方案 四种实现方式:QRunnable+QThr
2025-06-06 15:45:23
1318
原创 【QT面试题】(二)
1.什么是半打开状态定义:服务端发送SYN+ACK后,等待客户端ACK时的中间状态存储机制:存储在通过哈希表实现的半连接队列(SYN队列)2.全连接状态(1)全连接定义:当服务端收到客户端的ACK包后,连接建立成功。(2)先将该连接在半连接中移除,再把该连接加入到全连接队列(accept队列)中。3.SYN攻击防护(1)攻击方式:客户端发送SYN后故意不回复ACK(2)攻击类型:SYN泛洪、SYN攻击、DDos攻击(3)危害:占用半连接队列资源,导致正常连接无法建立。
2025-06-06 15:44:34
692
原创 【QT面试题】(一)
字面值、返回非引用类型的函数调用,后置自增、后置自减(先拷贝i,然后对i加1并赋值给i;(2)功能差异:左值引用必须初始化、可修改原变量值、传参时可避免对象的拷贝,右值引用实现移动语义和实现完美转发,主要处理临时对象。子类执行拷贝构造时,会先调用父类的拷贝构造函数。例子:若类A包含类B成员,且类B有拷贝构造函数,则A需要默认拷贝构造函数来调用B的拷贝构造。:先删除目标位置的元素,再插入新元素,当修改中间元素时,这种方法效率非常低。:先通过读取操作获取元素的引用,然后修改该引用的值,这是最高效的修改方式。
2025-06-06 15:43:34
922
原创 【STL】函数对象+常用算法
STL函数对象与常用算法摘要 函数对象(仿函数):通过重载()运算符实现的类,行为类似函数调用。具有三大特点: 可像普通函数一样调用,支持参数和返回值 可维护内部状态(如计数器) 可作为参数传递 谓词:返回bool的仿函数,分为: 一元谓词(单参数,如GreaterFive) 二元谓词(双参数,如MyCompare) 内建函数对象: 算术仿函数(plus、minus等) 关系仿函数(greater、less等) 逻辑仿函数(实际较少使用) 常用算法: 遍历算法: for_each:遍历容器元素,可接受普通函
2025-06-05 21:45:23
860
原创 【C++11新特性】
本文摘要了C++11核心特性:1)类型推导(auto/decltype)简化变量声明;2)序列for循环遍历容器;3)lambda表达式用于创建匿名函数;4)构造函数(委托/继承)优化对象初始化;5)新型容器(array固定数组/forward_list单向链表);6)垃圾回收机制原理及替代方案;7)正则表达式基本语法。这些特性提升了代码简洁性和运行效率,其中lambda和容器改进对STL应用影响显著。
2025-06-05 21:44:21
1125
原创 【机器学习】环境搭建及Sklearn鸢尾花数据集
教授的第一节课。Ancaonda的安装以及环境配置,学会使用迭代法,初次认识Sklearn鸢尾花数据集,并学会画散点图
2024-10-30 02:04:33
1297
1
原创 【算法与设计】期末总结
算法:解决问题的一种方式或者一种过程。算法有若干个指令组成的有穷序列。程序:算法用某种程序设计语言的具体实现输入输出确定性有限性程序可以不满足“有限性”
2024-06-18 18:16:56
1665
1
原创 【数据库】Mybatis
主要介绍Mybatis的基本操作,即增删改查。此外,还有动态mysql和xml的语句编写。设计到的内容均有内容及对应的代码实现
2024-05-20 11:58:21
1123
原创 【数据结构】集合与散列表
本文章介绍数据结构中的集合和散列表,包括Hash(哈希)表、三种组织查找表的方法、集合的运算,且还包含习题(附有解析)。此外,含有关于集合运算和散列表的全部具体实现代码。
2024-05-05 11:55:57
1326
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人