- 博客(50)
- 问答 (1)
- 收藏
- 关注
原创 栈与单调栈专题
Hot100 栈专题共 4 题:有效的括号、字符串解码、每日温度、柱状图中最大的矩形。前两题是栈的基础应用,后两题是单调栈的经典场景。单调栈是这个专题的难点,也是竞赛中高频出现的技巧。
2026-05-10 22:59:35
335
原创 二分查找专题
给一个升序数组nums和目标值target,找出target在数组中的起始位置和结束位置,不存在则返回[-1, -1]。要求OlognO(\log n)Ologn。输入:nums=[5,7,7,8,8,10], target=8输出:[3,4]输入:nums=[5,7,7,8,8,10], target=6输出:[-1,-1]
2026-05-10 21:45:37
347
原创 图论专题(下)
本篇覆盖图论专题后 8 题:全排列、子集、电话号码的字母组合、组合总和、括号生成、单词搜索、分割回文串、N 皇后。这 8 道题全部基于回溯算法,是竞赛中出现频率极高的搜索技巧,也是 Hot100 里主观难度最高的专题之一。
2026-05-10 21:06:31
339
原创 二叉树专题(下)
本篇覆盖二叉树专题的后 7 题:BST 中第 K 小的元素、二叉树的右视图、二叉树展开为链表、从前序与中序遍历序列构造二叉树、路径总和 III、二叉树的最近公共祖先、二叉树中的最大路径和。这部分题目综合性更强,需要对遍历框架有更灵活的运用。
2026-05-08 23:24:04
315
原创 图论专题(上)
Hot100 图论专题共 13 题,本篇覆盖前 5 题:岛屿数量、腐烂的橘子、课程表、实现 Trie 前缀树、岛屿的最大面积。这几题分别考察 DFS flood fill、BFS 多源扩散、拓扑排序、前缀树四个核心图论技巧,是竞赛和面试的高频考点。
2026-05-08 23:23:45
814
原创 二叉树专题(上)
Hot100 二叉树专题共 15 题,本篇覆盖前 8 题:中序遍历、最大深度、翻转二叉树、对称二叉树、二叉树直径、层序遍历、有序数组转 BST、验证 BST。这部分以遍历框架为核心,理解递归在树上的运作方式是做对后续所有树题的前提。
2026-05-08 12:44:53
521
原创 链表专题(下)—— 进阶操作
本篇覆盖链表专题的进阶部分:删除倒数第 N 个节点、两两交换链表中的节点、K 个一组翻转链表、随机链表的复制、排序链表、合并 K 个升序链表、LRU 缓存,共 7 题。这部分题目对指针操作的要求更高,K 个一组翻转和 LRU 缓存是链表专题里公认的难题。
2026-05-08 12:31:18
343
原创 链表专题(上)—— 基础操作
Hot100 链表专题共 13 题,是题目最多的专题。本篇覆盖基础操作部分:相交链表、反转链表、回文链表、环形链表 I & II、合并两个有序链表、两数相加,共 7 题。链表题的核心是指针操作,画图是理清思路最有效的方式,每一步都要清楚当前指针指向哪里、下一步要断开或连接哪条边。
2026-05-07 20:45:52
295
原创 矩阵专题部分
Hot100 矩阵专题共 4 题:矩阵置零、螺旋矩阵、旋转图像、搜索二维矩阵 II。矩阵题的核心考察点是下标的精确控制和边界处理,思路本身不复杂,但实现细节容易出错,需要对行列下标的变化规律有清晰的认知。
2026-05-07 20:38:53
364
原创 普通数组专题
Hot100 普通数组专题共 5 题:最大子数组和、合并区间、轮转数组、除自身以外数组的乘积、缺失的第一个正数。这个专题没有统一的核心技巧,每道题的思路相对独立,但都考察对数组下标和边界的精确控制,以及在限制条件下(不能用额外空间、必须On)的设计能力。
2026-05-07 19:54:53
344
原创 子串专题部分
Hot100 子串专题共 3 题:和为 K 的子数组、滑动窗口最大值、最小覆盖子串。这三题难度跨度较大,从中等到困难,涉及前缀和、单调队列、滑动窗口三种不同的核心技巧。
2026-05-07 18:34:08
327
原创 滑动窗口专题
Hot100 滑动窗口专题共 2 题:无重复字符的最长子串、找到字符串中所有字母异位词。滑动窗口本质是双指针的延伸,用一个可伸缩的窗口在数组或字符串上滑动,避免重复计算,把暴力的On2降到On。
2026-05-05 15:01:26
347
原创 双指针专题
Hot100 双指针专题共 4 题:移动零、盛最多水的容器、三数之和、接雨水。双指针不是一种固定算法,而是一类通过维护两个下标来减少枚举量的思路,核心是利用数组的单调性或对称性压缩搜索空间。
2026-05-01 02:02:44
373
原创 哈希表专题
本文总结 Hot100 哈希表专题的三道典型题:两数之和、字母异位词分组、最长连续序列。哈希表核心是利用 `unordered_map` 或 `unordered_set` 实现均摊 O(1) 查询,用空间换时间。两数之和通过查找 complement 将暴力 O(n²) 优化为 O(n);异位词分组用排序后的字符串作 key;最长连续序列用集合判断序列起点,避免排序,达到 O(n)。
2026-04-30 03:09:30
344
原创 复杂度分析方法
本文系统总结了时间复杂度与空间复杂度的分析方法。复杂度关注算法随输入规模增长的资源消耗趋势,常见规律包括:单层循环为 O(n),嵌套循环为 O(n²),折半操作为 O(log n),排序通常为 O(nlogn),递归需看深度和每层代价。空间复杂度只统计额外空间,递归栈也要计入。核心是抓住增长最快的部分。
2026-04-30 02:57:01
516
原创 C2f:YOLOv8 Backbone 里的核心特征模块
它通过特征拆分、部分分支继续变换、再拼接融合的方式,让不同处理深度的特征共同参与输出,有助于增强特征复用、改善信息流动,并在计算效率与表达能力之间取得平衡。结果是输出同时包含较浅、中间、较深三个层次的特征,表达更丰富,中间层信息不容易白白浪费。C2f 保留部分较浅特征的同时引入更深处理后的分支特征,最后统一融合,输出通常更丰富。这种结构的问题在于:中间层信息利用不充分,前面提取的特征在经过多层变换后容易被逐渐覆盖,输出主要由最后几步决定。C2f 强调的是多路特征的拆分、累积和拼接,最后统一融合。
2026-04-20 00:25:30
239
原创 YOLOv8 的 Backbone 为什么这样设计,卷积、下采样、C2f 到底在起什么作用
这一篇的目标是往里拆:Backbone 内部到底在做什么,为什么这样设计。光会说"Backbone 负责特征提取"是不够的,老师一追问——为什么这样提、为什么要下采样、通道数为什么越来越多、C2f 放这里是为了什么——就得能接住。
2026-04-19 19:12:35
349
原创 为什么目标检测一定要做多尺度特征融合:小目标、大目标到底难在哪
目标检测面临的核心挑战在于处理不同尺度目标。浅层特征分辨率高但语义弱,适合小目标定位;深层特征语义强但分辨率低,适合大目标识别。仅用单层特征会导致小目标丢失或大目标定位不准。多尺度特征融合通过结合浅层细节与深层语义,使模型能同时处理不同尺寸目标。这一原理为理解YOLO等检测器的多尺度设计奠定了基础,也是现代目标检测网络的关键设计思想。
2026-04-19 17:58:31
362
原创 YOLOv8 整体架构入门:Backbone、Neck、Head 到底各自负责什么
Backbone 主要负责从输入图像中逐层提取特征,获得从浅层到深层的多级语义表示;Neck 主要负责将不同尺度的特征进行融合,增强模型对大中小目标的检测能力;Head 则在融合后的特征图上进行分类和边界框预测,最终输出检测结果。
2026-04-19 16:47:58
549
原创 卷积神经网络入门:卷积、特征图、下采样到底在干什么
卷积神经网络通过逐层卷积操作从原始像素中提取多尺度特征,实现从低层边缘纹理到高层语义的渐进式理解。卷积核滑动计算生成多通道特征图,每个通道对应不同特征响应;下采样操作(如stride卷积或池化)缩小特征图尺寸并扩大感受野。浅层特征保留细节适合小目标检测,深层特征整合全局信息用于语义理解。这种层级结构是目标检测模型(如YOLO)多尺度预测的基础,三个核心公式分别描述卷积计算、输出尺寸变化和最大池化操作
2026-04-19 01:37:03
457
原创 YOLOv8 的输出到底是什么:框、类别、置信度、NMS 一次讲清(五)
这才是最后展示在图片上的结果。原始预测 + 筛选 + 去重之后的结果你在预测图上看到的,通常就是这一步后的结果。原始预测 → 置信度筛选 → NMS 去重 → 最终结果这句话你最好记住。后面很多内容都建立在这条链上。
2026-04-18 20:02:44
402
原创 YOLOv8 是什么:它在目标检测里处于什么位置 (四)
Ultralytics 的 YOLOv8 文档说明,YOLOv8 于 2023 年发布,并引入了 anchor-free split head,同时支持 detection、segmentation、classification、pose、OBB 等任务;而 Ultralytics 当前总文档与 models 页已经把 YOLO26 标为最新模型,说明 YOLOv8 今天更适合被看作“成熟学习入口”,而不是“最新代际代表”。YOLOv8 很适合作为入门模型,主要不是因为它“理论最简单”,而是因为它。
2026-04-18 02:01:50
378
原创 图像在深度学习里是怎么表示的:像素、通道、tensor、batch(二)
一次送进模型的样本数量比如:batch size = 1:每次送 1 张图batch size = 8:每次送 8 张图batch size = 16:每次送 16 张图标注框就是一个矩形框,用来把目标圈出来。比如:这个框里是一只猫那个框里是一辆车。
2026-04-17 13:17:02
420
原创 从 ( y = wx + b ) 到神经网络:参数、loss、梯度到底怎么连起来(一)
本文从最简单的线性模型y=wx+b出发,逐步解析深度学习核心概念:模型本质是函数,参数(w,b)是可调节的变量;通过预测值与真实值的比较计算loss;利用loss对参数的梯度指导参数更新;最终扩展到神经网络,指出其本质是更复杂的函数,但训练逻辑不变。文章着重区分了模型、参数、loss、梯度等易混淆概念,并通过具体示例演示了前向传播、反向传播和参数更新的完整流程,为理解YOLOv8等复杂模型奠定了理论基础。
2026-04-17 01:06:07
1654
原创 C++刷 LeetCode Hot100 笔记(十二)二叉树专题(下):将二叉树展开为链表、从前序与中序遍历序列构造二叉树、路径总和 III、二叉树中的最大路径和
本篇继续整理二叉树专题后半部分,重点是四类典型思路:前序遍历后重连节点实现二叉树展开为链表;利用“前序定根、中序分左右”递归构造二叉树;把数组前缀和思路迁移到树上,解决路径总和 III;通过“返回单边最大贡献 + 全局更新答案”解决二叉树最大路径和。这一篇开始更强调树题里返回值、路径定义和全局最优之间的区别。
2026-04-11 01:28:37
364
原创 C++刷 LeetCode Hot100 笔记(十一)二叉树专题(中):二叉树的直径、将有序数组转换为二叉搜索树、验证二叉搜索树、二叉搜索树中第 K 小的元素、二叉树的右视图
本篇继续整理二叉树专题中段内容,重点是两类思路:一类是树形递归中“返回值 + 全局答案”的配合,比如二叉树的直径;另一类是抓住二叉搜索树的性质,尤其是“中序遍历有序”,解决验证 BST 和第 K 小元素问题。另外还补了有序数组构造平衡 BST,以及用层序遍历求二叉树右视图。
2026-04-02 23:52:57
31
原创 C语言(五):函数、作用域、生命周期、编译链接与多文件工程综合整理
这是多文件工程的核心问题之一。真正创建这个变量或函数实体。/* 定义一个全局变量 */这个定义会让编译器和链接器知道:有一个叫g_num的全局对象它需要占实际存储空间/* 函数声明,只告诉编译器有这个函数 *//* 函数定义,真正给出函数实现 */这是工程里特别常见的坑。/* 错误示例:不要在头文件里直接定义全局变量 */如果多个.c文件都包含这个头文件,就相当于每个文件里都定义了一份g_count,最后链接时很容易出现“重复定义”。正确做法通常是:/* 只声明,不定义 */
2026-04-01 20:10:12
361
原创 C语言(三):数组、字符串、指针进阶、函数参数传递与高频易错题
数组与指针的深层区别字符串与字符数组的本质sizeofstrlen、数组退化指针数组、数组指针、函数参数中的数组二维数组与二级指针的区别函数参数传递的真实机制常见高频陷阱题与分析思路这一篇重点不是“会写”,而是要把这些内容真正想清楚。
2026-03-31 23:47:58
361
原创 C语言(二):static、extern、const、volatile、typedef、宏与预处理
定义声明严格说不完全对。它是给已有类型起别名,不会真正创造一个全新的底层类型体系。
2026-03-31 23:30:32
387
原创 C语言(一):指针、内存、结构体、联合体与底层细节
指针是一个变量,里面存放的是内存地址。通过指针可以间接访问对应地址上的数据。指针类型决定了解引用时按什么类型解释内存,也决定了指针运算的步长。
2026-03-30 20:21:29
2034
1
原创 Linux 基础笔记(二)文件权限、用户管理与 Vim 编辑器常用操作
Linux 和 Windows 一个很明显的区别,就是它对“谁能看、谁能改、谁能执行”这件事管得很细。比如同样一个文件:有的人可以打开看有的人可以修改有的人连看都看不了有的人还能把它当程序运行这背后就是 权限管理。你后面不管是:写 shell 脚本配置服务器跑程序改系统文件管理项目目录都会经常碰到权限问题。所以这部分一定要学会,不然后面你经常会遇到这种报错:这个报错翻译过来就是:权限不够,系统不让你干这个事。最常见的权限查看方法就是:比如输出可能长这样:这一行别看长,其实可以拆开看。比如:
2026-03-30 13:30:05
421
原创 C++刷 LeetCode Hot100 笔记(十)二叉树专题(上):二叉树的中序遍历、二叉树的最大深度、翻转二叉树、对称二叉树、二叉树的层序遍历
本篇是二叉树专题入门,先顺了 TreeNode 结构和前中后序、层序遍历的基本概念,然后整理了 5 道基础题:中序遍历、最大深度、翻转二叉树、对称二叉树、层序遍历。这里最常见的两种写法就是递归和队列:看到左右子树递归处理,优先想 DFS;看到一层一层遍历,优先想 BFS。二叉树前期先把这几个基础模板写熟,后面做题会顺很多。
2026-03-29 20:54:08
409
原创 C++刷 LeetCode Hot100 笔记(九)栈与单调栈专题:有效的括号、最小栈、字符串解码、每日温度、柱状图中最大的矩形
前面已经把:数组、哈希、双指针、滑动窗口链表专题这些比较常见的基础块过了一遍。这一篇开始进入 栈。很多人一开始学栈的时候,感觉它很简单,不就是“先进后出”吗。但真正刷 Hot100 的时候你会发现:栈简单归简单,但特别能出题。尤其是下面这几类:括号匹配表达式 / 字符串展开维护“最近更大 / 更小”元素单调栈优化区间问题栈的特点就一句话:就像一摞盘子:最后放上去的最先拿出来C++ 里最常用的是:几个最常用操作:你现在先别把它看得太复杂,前期就把它理解成:一个只能从顶部操作的容器。你先记几个特别
2026-03-29 15:21:10
453
原创 C++刷 LeetCode Hot100 笔记(八)链表专题(下):相交链表、回文链表、两数相加、两两交换链表中的节点、随机链表的复制
反转链表用 dummy 处理头节点用快慢指针找中点 / 判环 / 制造间距局部交换节点用哈希表存节点映射。
2026-03-28 22:38:02
349
原创 C++刷 LeetCode Hot100 笔记(七)链表专题(上):反转链表、合并两个有序链表、删除链表的倒数第 N 个结点、环形链表、环形链表 II
反转链表:三指针合并链表:dummy + 尾插删除倒数第 N 个:快慢指针判环:快慢指针找环入口:快慢指针经典结论。
2026-03-27 23:09:54
298
原创 Linux 基础常用命令
很多刚接触 Linux 的人,一开始会觉得命令行很“黑框框”、很难,其实本质上它就是一种和系统交流的方式。我们平时在 Windows 上,更多是“点来点去”;而在 Linux 里,很多操作是“敲命令”。比如:想看当前目录下有什么文件,可以输入 想进入某个文件夹,可以输入 想创建文件夹,可以输入 只要你把常见命令练熟,很多事情比图形界面还快。Linux 命令一般长这样:举个例子:这条命令可以拆成三部分::命令名,表示查看目录内容:选项,表示用详细列表方式显示:参数,表示查看 这个目录再比如:
2026-03-26 23:34:24
787
原创 C++刷 LeetCode Hot100 笔记(六)哈希表专题:字母异位词分组、最长连续序列、和为 K 的子数组、快乐数
这里的p.second就是一组字符串。表示当前走到这里,前面的总和。
2026-03-26 17:39:29
438
空空如也
c语言程序计算三角形面积
2023-10-24
C语言switch语句的程序
2023-10-26
c语言计算器的代码编程
2023-10-26
C语言月日年换成年月日问题
2023-10-13
c语言简单计算器的代码
2023-10-18
C语言编写出生年月的代码
2023-10-15
用c语言输出空格菱形
2023-09-22
用c语言输出空格菱形
2023-09-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅