自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

澈的博客

永远是那一天

  • 博客(139)
  • 收藏
  • 关注

原创 Qt 零基础教程(12)- 网络编程入门之下:HTTP 请求与 TCP 多人聊天室实战

本文介绍了使用Qt进行HTTP协议请求和TCP多人聊天室开发的实战内容。在HTTP部分,讲解了QNetworkAccessManager、QNetworkRequest和QNetworkReply三个核心类的使用,并演示了GET/POST请求及文件下载的实现。在TCP聊天室项目中,详细说明了服务端和客户端的设计思路,包括多客户端管理、消息广播机制、TCP粘包处理等关键技术点。文章还提供了完整的代码实现,并建议了可扩展的功能方向,如私聊、在线列表、文件传输等。最后总结了Qt网络编程从底层Socket到高层HT

2026-07-10 11:42:42 236

原创 【无标题】QT入门第十二天:数据库编程(下)模型视图与数据展示 | 零基础学QT

模型(Model):负责管理数据(从哪里来、怎么组织)视图(View):负责显示数据(怎么显示给用户看)委托(Delegate):负责编辑数据(怎么编辑)模型 = 仓库(存放货物)视图 = 展示柜(把货物摆出来给人看)委托 = 售货员(帮你处理买卖)QSqlQueryModel是一个只读的模型,它把SQL查询的结果封装成模型,可以直接显示到视图上。💡 特点:只能看,不能改。适合用来展示数据。QSqlTableModel比QSqlQueryModel更强大,它是可编辑。

2026-07-03 13:14:37 207

原创 QT入门第十一天:数据库编程(上)SQLite入门与增删改查 | 零基础学QT

不需要安装数据库服务器整个数据库就是一个文件QT内置支持,不用额外配置适合中小型应用💡 生活类比:MySQL像是一个大型仓库(需要专门的管理员和场地),SQLite像是一个文件柜(一个文件就搞定)。每一列是一个"字段"(比如姓名、年龄)每一行是一条"记录"(比如一个学生的信息)事务是一组操作,要么全部成功,要么全部失败。比如银行转账:A减钱、B加钱,这两个操作必须同时成功或同时失败。💡 生活类比:事务就像一个"打包操作",要么全做完,要么一个都不做。

2026-07-03 13:00:53 296

原创 Qt零基础文件操作全攻略

本文是Qt入门系列的第10篇,全面讲解Qt文件操作核心知识。主要内容包括:1)Qt文件处理两大基础类QFile(底层文件操作)和QTextStream/QDataStream(文本/二进制流);2)文本文件和二进制文件的完整读写示例代码;3)QSettings配置文件的便捷使用方法;4)文件夹创建与遍历操作;5)常见问题解决方案(如中文乱码处理)。文章还总结了本系列前10篇涵盖的Qt基础知识体系,从开发环境搭建到文件IO操作,为开发简易桌面工具提供了完整知识框架,并预告下一阶段将进入Qt数据库编程内容。

2026-06-24 10:04:05 199

原创 QT入门第十天:文件操作(下)文件信息与目录操作 | 零基础学QT

QFileInfo是用来获取文件信息的类。文件叫什么名字文件在哪个目录文件有多大文件什么时候创建的、什么时候修改的是文件还是目录有没有读写权限等等…💡 理解:QFile就像一个文件操作工具(打开、读写),QFileInfo就像一个文件信息查询工具(查属性)。查看目录里有什么文件创建和删除目录重命名目录过滤和排序文件获取各种系统目录💡 理解:QDir就像一个文件夹操作工具,可以浏览文件夹、创建文件夹、删除文件夹。临时保存数据程序间交换数据缓存。

2026-06-23 10:58:33 392

原创 QT入门第九天:文件操作(上)QFile与文本流 | 零基础学QT

QFile是QT中用来操作文件的类,可以读写文本文件和二进制文件。它继承自QIODevice,是QT所有IO类的基础。💡 理解:QFile就像一个文件操作工具,用它可以打开文件、读内容、写内容、关闭文件。可以用<<和>>操作符,就像cout/cin一样自动处理编码支持格式化输出💡 理解:QTextStream就像给文件套了一层"文本壳",让读写文本更简单。QDataStream是二进制数据流,用来读写二进制数据。QTextStream:读写文本,人能看懂QDataStream:读写二进制。

2026-06-23 10:55:53 381

原创 QT入门第八天:绘图QPainter详解 | 零基础学QT

QPainter是QT的绘图工具类,它可以在"绘图设备"上画东西。QWidget:控件(最常用)QPixmap:图片QImage:图片(更底层)QPicture:记录绘图命令💡 理解:QPainter就像一支画笔,绘图设备就是画布。你拿着画笔在画布上画画。今天我们学习了QT的绘图系统QPainter,这是做自定义控件和炫酷效果的基础。

2026-06-22 09:19:38 492

原创 QT入门第七天:事件处理机制详解 | 零基础学QT

传统的程序是顺序执行的:从第一行跑到最后一行,跑完就结束了。而GUI程序是事件驱动的:程序启动后,就进入一个"事件循环",一直在等事件。用户点一下鼠标、按一下键盘,就产生一个事件,程序收到事件后去执行对应的处理函数,处理完又继续等下一个事件。💡 生活类比:就像餐厅服务员,客人不来的时候就等着,客人来了(事件发生)就去招待(处理事件),招待完又继续等下一位客人。定时器就是"每隔一段时间触发一次"的事件。时钟显示,每秒更新一次动画,每16毫秒刷新一帧倒计时,每秒减1事件过滤器可以让一个对象监听。

2026-06-22 09:16:06 425

原创 QT入门第六天:菜单栏工具栏状态栏详解 | 零基础学QT

QAction就是一个"动作",它代表了用户可以执行的一个操作,比如"打开文件"、“保存”、“复制”、“粘贴”。为什么要有QAction这个东西呢?在菜单栏里有一个"保存"菜单项在工具栏里有一个"保存"按钮还有快捷键 Ctrl+S这三个地方触发的是同一个操作,如果分别写三份代码,那就太麻烦了。创建一个QAction,然后把它同时加到菜单和工具栏里,它们共用同一个triggered信号。💡 理解:QAction就像一个"命令",菜单和工具栏按钮只是这个命令的不同入口。

2026-06-21 05:54:01 341

原创 QT入门第五天:对话框QDialog详解 | 零基础学QT

默认的按钮不够用?// 自定义按钮:保存、不保存、取消this,"提示","文件已修改,是否保存?",QMessageBox::Save // 默认选中的按钮qDebug() << "保存";qDebug() << "不保存";} else {qDebug() << "取消";- 确定- 取消- 是- 否- 保存- 不保存/丢弃- 中止- 重试- 忽略💡 小技巧:多个按钮用(按位或)连起来。内置的对话框不够用?没关系,我们可以自己做对话框!

2026-06-21 05:51:29 548

原创 QT入门第四天:布局管理器详解 | 零基础学QT

水平布局就是把控件从左到右排成一行,就像排队一样。垂直布局就是把控件从上到下排成一列,和水平布局正好垂直。网格布局就像Excel表格,把控件放在指定的行和列中。这是最灵活的布局。表单布局专门用来做两列表单,左边是标签,右边是输入框。做登录、注册这种界面特别方便。今天我们学习了QT的布局管理器,这是做专业界面的必备技能!

2026-06-20 12:04:38 482

原创 QT入门第三天:常用控件详解与表单实战 | 零基础学QT

QLabel是最基础的控件,用来显示文本或图片。它不能被用户编辑,纯展示用。显示提示文字(如"用户名:")显示图片显示超链接QLineEdit是单行文本输入框,用户可以在里面输入一行文字。用户名输入密码输入搜索框手机号、邮箱等短文本输入QTextEdit是多行文本编辑器,可以显示和编辑多行文本,还支持富文本(HTML格式)。大段文字输入(如备注、简介)显示富文本内容简单的HTML编辑器QCheckBox是复选框,用户可以勾选或取消勾选。

2026-06-20 12:01:31 622

原创 QT入门第二天:信号与槽机制详解 | 零基础学QT

你按下门铃(信号屋里的人听到后开门(槽门铃"叮"的一声就是信号,开门这个动作就是槽。信号发出后,对应的槽函数就会被触发执行。信号(Signal):对象状态发生变化时发出的消息。比如:按钮被点击、文本被修改、窗口被关闭…槽(Slot):响应信号的函数。比如:点击按钮后弹出对话框、修改文本后保存文件…核心思想:发送者不知道也不关心谁会接收它的信号,接收者也不知道是谁发出的信号。两者完全解耦!QT内置的信号和槽很方便,但更多时候我们需要自己定义。在下面声明返回值是void只需要声明,不需要实现。

2026-06-19 12:27:47 175

原创 QT入门第一天:环境搭建与Hello World | 零基础学QT

✅ QT是什么,它的特点和优势✅ 如何下载和安装QT开发环境✅ 使用Qt Creator创建第一个QT项目✅ 理解了main.cpp的基本结构✅ 修改了窗口标题并成功运行。

2026-06-19 12:26:25 260

原创 KMP算法:高效字符串匹配终极指南

KMP算法是一种高效的字符串匹配算法,通过预处理模式串生成next数组(记录最长相等前后缀长度),将时间复杂度从暴力匹配的O(n×m)优化至O(n+m)。其核心在于失配时利用next数组跳过无效比对,保持主串指针不回退。实现分为两步:1.构建next数组(递推求解);2.执行匹配(模式串指针按next数组回退)。算法支持单次匹配和所有位置匹配,适用于文本搜索等场景。注意next数组求解起始条件和边界处理,避免越界错误。实际应用中,KMP能显著提升长字符串匹配效率。

2026-05-30 12:26:44 195

原创 二维DP路径问题全解析

本文系统讲解了二维动态规划(DP)在网格路径问题中的应用,重点分析了三类典型题型:基础路径统计(LeetCode62)、带障碍物路径(LeetCode63)和最小路径和(LeetCode64)。核心解题步骤包括:状态定义(dp[i][j]表示坐标状态)、边界初始化(处理首行首列)、状态转移(基于向右/向下移动规则)和结果提取。文章对比了三类题型的差异,提供了标准二维数组和空间优化的一维数组两种代码实现,并总结了行列处理、障碍物判断等易错点。通过网格坐标绑定状态和分步递推的策略,二维DP能有效解决矩阵类路径问

2026-05-30 12:24:47 178

原创 动态规划实战:打家劫舍系列全解析

本文系统讲解了"打家劫舍"系列动态规划问题,包含三个版本:基础线性房屋(LeetCode198)、环形房屋(LeetCode213)和二叉树房屋(LeetCode337)。核心解题思路是通过动态规划处理相邻元素互斥的选择问题。基础版采用一维DP,状态转移方程为dp[i]=max(dp[i-1], dp[i-2]+nums[i-1]);环形版通过拆分为两个线性区间求解;树形版采用后序遍历,每个节点维护"偷/不偷"两种状态。文章还提供了空间优化技巧(滚动变量代替数组)、常

2026-05-29 11:41:29 417

原创 Kruskal与Prim:最小生成树双雄对决

最小生成树:连通全顶点、n-1 条边、总权值最小、无环路。Kruskal:边排序 + 并查集判连通,稀疏图首选。Prim:以顶点为核心贪心拓展,稠密图更合适。两个算法都基于贪心思想,遇到不连通图直接判定无解。

2026-05-29 11:39:56 315

原创 Floyd算法:3行代码搞定全源最短路

本文介绍了Floyd算法,这是一种用于求解图中任意两点间最短路径的多源最短路算法。文章详细讲解了Floyd的核心思想(动态规划)、数据结构要求(邻接矩阵)以及标准模板代码(三层循环结构)。重点强调了算法的适用场景(小规模图)、时间复杂度(O(n³))和实现要点(循环顺序不可更改)。同时对比了Dijkstra、SPFA和Floyd三大最短路算法的特点,指出Floyd的优势在于代码简洁但仅适用于节点数不超过500的情况。最后建议通过练习巩固该算法,包括处理负权边的情况。

2026-05-28 14:41:07 480

原创 动态规划入门:从斐波那契到爬楼梯

动态规划是一种通过拆分问题为重叠子问题并保存中间结果来优化计算效率的算法思想。其核心在于状态定义和状态转移方程的建立,能够将指数级复杂度降为多项式级。解题标准四步包括:状态定义、初始状态设置、状态转移推导和结果输出。以斐波那契数列和爬楼梯问题为例,展示了从暴力递归到基础DP数组再到空间优化的完整演进过程。动态规划相比递归避免了重复计算,相比贪心算法能保证全局最优解。初学者需注意状态定义的准确性、边界条件的正确设置,避免盲目套用模板。掌握一维DP是入门基础,后续可拓展到更复杂的二维DP、区间DP等高级应用场景

2026-05-28 14:39:43 298

原创 BFS网格问题:最短路径核心技巧

本文介绍了BFS(广度优先搜索)在网格问题中的应用。主要内容包括:1)BFS核心思想是借助队列实现层序遍历,适用于迷宫最短路径、岛屿遍历等问题;2)提供基础工具如四方向数组和队列存储结构;3)详细讲解三种模板:岛屿遍历、网格最短路径和多源BFS;4)对比DFS与BFS的适用场景;5)总结通用解题步骤和常见错误。BFS通过层序遍历确保首次到达即为最优解,适合处理网格类问题,特别是需要最短路径的场景。

2026-05-27 10:58:10 600

原创 SPFA算法:负权图最短路径与负环检测

本文介绍了SPFA算法(队列优化Bellman-Ford)及其应用。SPFA适用于带负权边的单源最短路径问题,并能检测负环。算法通过队列优化Bellman-Ford,利用松弛操作更新距离,当节点入队次数超过顶点数时判定存在负环。文章提供了SPFA的标准模板代码,详细解析了核心逻辑,并与Dijkstra算法进行对比,指出SPFA适用于负权图而Dijkstra仅适用于非负权图。最后强调负环存在时最短路径无意义,并建议根据边权情况选择合适的算法。

2026-05-27 10:57:02 431

原创 DFS岛屿问题:核心思想与实战模板

本文介绍了DFS算法在岛屿类问题中的应用。核心思想是通过洪水填充法遍历二维网格,使用方向数组控制搜索方向,递归标记已访问区域。文章提供了通用DFS模板,包含边界判断、标记访问和四方向递归等关键步骤,并给出岛屿数量和最大面积两个经典例题的完整代码实现。同时总结了岛屿问题的解题步骤、常见错误和DFS的优缺点,强调方向数组配置和原地标记的重要性。该算法适用于各类网格搜索问题,是解决连通性问题的有效方法。

2026-05-26 16:06:47 170

原创 图论天花板:Dijkstra最短路径算法详解

本文介绍了Dijkstra单源最短路径算法,这是图论中的高频考点。该算法适用于带权有向/无向图(边权非负),通过贪心策略每次选取离起点最近的未访问点来更新邻居距离。文章详细讲解了堆优化实现,包括必备数据结构(邻接表、距离数组、优先队列)和万能模板代码,强调必须使用小根堆且边权不能为负。算法时间复杂度为O(ElogV),适用于地图导航、网络传输等场景。最后提醒注意易错点并建议通过练习巩固掌握。

2026-05-26 16:02:42 311

原创 图论入门:拓扑排序实战指南

本文介绍了图论中的拓扑排序算法及其应用。主要内容包括:图的邻接表存储方式、拓扑排序的核心思想(通过不断移除入度为0的节点来判断依赖关系)、基于BFS的标准实现模板,以及典型应用场景如任务调度和环路检测。文章提供了C++代码示例,详细说明了如何处理有向无环图的拓扑排序,并特别强调了如何通过输出节点数量来判断图中是否存在环路。最后建议通过构建有向图和带环图来练习算法实现。

2026-05-25 10:33:48 285

原创 回溯算法核心:子集、组合、排列全解析

本文系统介绍了回溯算法的核心思想和应用方法。回溯算法本质是深度优先搜索结合状态撤销,通过递归穷举所有合法方案并剪枝优化。文章详细阐述了回溯的四个要素(路径、选择列表、终止条件、回溯撤销)和通用模板,重点分析了子集、组合、排列三类典型问题的解法差异:子集问题使用start控制起始位置,组合问题限定元素个数,排列问题需要used数组标记已选元素。文中还总结了常见剪枝场景、高频题型和易错点,强调合理剪枝对提升效率的重要性。掌握回溯算法的核心在于理解"选择-递归-撤销"的基本模式,并根据不同题型

2026-05-25 10:32:19 217

原创 BFS算法:逐层遍历,轻松搞定最短路径

本文系统介绍了BFS(广度优先搜索)算法的核心原理与应用。BFS通过队列实现逐层遍历,擅长求解无权图最短路径问题。文章详细讲解了BFS的通用解题步骤:初始化队列、标记访问、逐层扩展相邻节点,并提供了标准模板框架。通过二叉树层序遍历和迷宫最短路径两个典型例题,展示了BFS的具体实现方式。与DFS对比,BFS具有天然最短路径优势但空间开销较大。最后总结了BFS的核心特点:就近优先搜索、方向数组处理移动、首次触达即为最短路径,并建议课后练习层序遍历和迷宫问题。

2026-05-24 10:22:13 436

原创 递归算法:从入门到精通的实战指南

递归是一种通过函数自调用将大问题拆解为同类小问题的算法。其核心要素包括:终止条件(最小不可拆分问题)、递归拆解(缩小问题规模)和结果合并(整合子问题答案)。典型应用如阶乘、斐波那契数列和链表求和。递归代码简洁但存在栈溢出和重复计算风险,可通过记忆化、迭代改写和剪枝优化。适用场景包括数学计算、树遍历、DFS搜索等。新手需注意终止条件遗漏、问题拆分错误等常见问题。掌握递归三要素是理解回溯等高级算法的基础。

2026-05-24 10:21:13 396

原创 七大核心算法实战:从贪心到动态规划的解题秘籍

本文总结了七大核心算法的实战训练要点:贪心算法通过双指针解决饼干分配问题;二分查找强调有序数组的区间处理;动态规划以爬楼梯为例展示状态递推;滑动窗口维护无重复子串;回溯算法实现全排列并注意状态撤销;并查集用于连通性判断;01背包问题演示二维DP的状态转移。每种算法都配有标准代码模板和解题思路,强调要快速识别题型特征、正确套用模板,并注意边界条件和状态维护。通过综合训练可提升算法选型能力和代码实现准确度。

2026-05-23 10:46:24 168

原创 二分查找算法:高效搜索的核心技巧

本文系统介绍了二分查找算法及其应用。主要内容包括:1)二分查找核心原理,适用于有序数组的高效查找;2)基础二分模板实现;3)查找左右边界的两种变体模板;4)防止数值溢出的mid计算方法;5)典型应用场景和例题解析;6)常见错误和使用注意事项。文章强调二分查找必须满足有序性前提,时间复杂度为O(logn),并提供了基础查找、左边界和右边界三种模板的选择口诀。最后指出边界判断是解题关键点,需要根据不同场景正确选用模板。

2026-05-23 10:44:43 277

原创 贪心算法:三步搞定最优解

本文系统介绍了贪心算法的核心概念与应用。贪心算法通过每一步局部最优选择来寻求全局最优解,具有代码简洁、效率高的特点。文章详细讲解了贪心算法的三大适用前提(局部最优、全局最优、无后效性)和解题四步法(确定策略、排序、遍历执行、统计结果),并通过分发饼干、区间调度、跳跃游戏等经典例题展示了具体实现。同时对比了贪心与动态规划的区别,强调当贪心策略不适用时应切换为DP。最后总结了高频贪心策略类型,建议在确保正确性的前提下优先使用贪心算法。

2026-05-21 08:55:09 448

原创 滑动窗口算法:高效解决子数组问题

本文系统介绍了滑动窗口算法的核心原理与应用。算法通过左右指针动态维护区间,将暴力解法优化为O(n)复杂度,分为定长和变长窗口两类:定长窗口适用于固定k元素计算(如子数组最大和),变长窗口通过"右扩左缩"解决无重复字符子串、最小子数组等问题。使用前提是数据具有单调性,适用于字符串匹配、子数组求和等场景。与双指针的区别在于侧重区间维护而非两端逼近。文章提供了通用模板,并指出常见错误(如while误用if),强调变长窗口的while收缩是核心。该算法能高效解决连续子区间问题,是字符串和数组题目

2026-05-21 08:54:08 391

原创 双指针算法:高效解题的终极技巧

双指针算法核心要点总结:双指针通过两个变量同步移动,将O(n²)暴力解法优化为O(n),空间效率极高。主要分为两类:1)左右指针(首尾相向),适用于有序数组、回文判断等问题;2)快慢指针(同向移动),用于链表操作、数组去重等场景。典型应用包括数组反转、两数之和、链表判环等。使用时需注意边界条件,避免常见错误如循环条件不当、移动顺序错误等。该技巧是解决数组/链表问题的通用高效方法,尤其适合有序数据结构和原地操作需求。

2026-05-20 10:47:17 559

原创 二维动态规划:从网格路径到01背包

本文介绍了二维动态规划的核心概念与应用,重点讲解了网格路径问题和01背包问题。在网格路径问题中,通过状态转移方程dp[i][j] = dp[i-1][j] + dp[i][j-1]计算不同路径数,以及用min()函数求最小路径和。01背包问题则通过状态转移方程dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]]+v[i])求最大价值,并介绍了一维空间优化方法。文章强调二维DP的状态定义、转移方程和遍历顺序的重要性,指出01背包是算法进阶的关键,建议通过练习掌握二维转一维的优化

2026-05-20 10:46:13 334

原创 动态规划入门:从斐波那契到爬楼梯

本文介绍了动态规划(DP)的核心思想和解题方法。DP通过将大问题拆分为子问题,并用数组存储中间结果来避免重复计算。文章详细讲解了DP解题四步法:确定dp数组含义、推导状态转移方程、初始化和遍历顺序。通过斐波那契数列、爬楼梯等经典例题,展示了一维DP的实现方式,并介绍了用滚动变量优化空间复杂度的方法。最后强调DP的核心是拆分子问题、记录状态和状态转移,建议通过练习斐波那契、爬楼梯等题目巩固DP思维。

2026-05-19 16:10:18 45

原创 图BFS核心:最短路径与万能模板

本文系统介绍了图论中的广度优先搜索(BFS)算法。主要内容包括:1)BFS核心思想是层序遍历,使用队列实现,适合求解无权图最短路径;2)详细讲解BFS标准模板,包含邻接表、访问标记和队列实现;3)扩展应用:最短路径计算、多连通图遍历;4)对比DFS与BFS的适用场景;5)常见应用场景和易错点。文章强调BFS和DFS是图论两大基础算法,掌握后可为后续高级算法打下基础。

2026-05-19 16:09:21 42

原创 深度优先搜索:图遍历核心技巧

本文介绍了图论中深度优先搜索(DFS)算法的核心思想和实现方法。DFS采用"一路深入、回溯遍历"的策略,适用于连通性判断、路径搜索等问题。文章详细讲解了DFS的递归模板代码,包括邻接表存储、访问标记数组等必备准备,并演示了无向图和有向图的遍历实现。特别强调了多连通图的遍历方法和统计连通分量的技巧,同时分析了DFS的优缺点及常见应用场景。最后总结了DFS的核心要点,并提醒新手注意常见错误。DFS作为图论最基础的遍历方式,具有代码简洁、易于实现的特点。

2026-05-18 13:53:27 444

原创 回溯算法:暴力枚举最优解

本文系统讲解回溯算法的核心思想和应用场景。回溯算法本质是深度优先搜索,通过递归实现暴力枚举所有合法方案,适用于排列、组合、子集等搜索问题。文章详细介绍了回溯的通用模板:终止条件→遍历选择→递归→撤销选择(回溯),并针对子集、组合、全排列三类经典题型给出代码实现。特别强调去重技巧(排序+同层跳过)和剪枝优化的重要性,指出子集、组合、排列三类问题的关键区别在于start下标和used数组的使用方式。最后建议通过手写代码练习巩固回溯算法的掌握。

2026-05-18 13:52:24 351

原创 Git入门指南:核心概念与实用操作

Git学习笔记摘要:本文系统介绍了Git版本控制的核心概念与操作流程。主要内容包括:1. Git三大区域(工作区、暂存区、仓库)和三种状态(已修改、已暂存、已提交)的工作机制;2. 基础操作如仓库初始化(git init)、克隆(git clone)、状态查看(git status)、提交(git commit)等;3. 版本控制核心功能:分支管理(git branch/checkout)、合并(git merge)、变基(git rebase);4. 远程协作相关操作:远程仓库管理(git remote)

2026-05-17 10:33:43 541

原创 二分查找:高效搜索有序数组的神器

本文系统讲解二分查找算法,强调其适用于有序数组查找,时间复杂度O(logn)。核心内容包括:1)统一使用左闭右闭区间[left,right]避免越界;2)提供三大模板代码:基础查找、左边界查找(第一个≥target)和右边界查找(最后一个≤target);3)重点说明mid防溢出写法和二分答案进阶用法;4)指出常见错误如循环条件、边界更新等注意事项。文章最后建议通过手写实现、查找重复元素首位置等练习巩固算法。二分查找是处理有序数据的高效工具,掌握模板可解决多种变体问题。

2026-05-17 10:29:40 281

LabVIEW 室内环境检测系统

小项目,满足实验全部要求

2026-05-28

空空如也

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

TA关注的人

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