- 博客(10)
- 收藏
- 关注
原创 动态规划笔记
本文摘要: 本文以爬楼梯问题为例,系统介绍了动态规划算法的核心思想和实现方法。首先通过回溯法(O(2ⁿ))和暴力搜索(指数阶)展示低效解法,指出重叠子问题是效率低下的主因。随后引入记忆化搜索(O(n))和标准动态规划(O(n)),通过存储子问题解避免重复计算。最后通过空间优化将复杂度降至O(1)。文章还深入分析了动态规划的特性:重叠子问题、最优子结构和无后效性,并通过修改题目说明最优子结构概念。整体呈现了从暴力解法到优化方案的完整演进过程,展示了动态规划的核心优势。
2026-01-25 21:31:20
865
原创 XCTF-Web新手区刷题-WriteUp
本文章主要是博客刷的题目+题解,供参考:)(攻防世界-新手区)view_source-(★)跳转主页后直接F12查看源码发现注释的部分就是flag。(攻防世界-新手区)get_post-(★)获取场景F12进入开发者模式进去HackBar功能(Google商店的扩展插件)在url给网址添加上要求的Get请求,然后点击Execute执行再点击 Use POST method 写入对应的Post要求然后执行flag就出来了。(攻防世界-新手区)robots-(★)
2026-01-13 18:16:57
761
原创 回溯算法笔记
回溯算法是一种通过穷举所有可能解来解决问题的暴力搜索方法,其核心在于"尝试-回退-剪枝"机制。本文基于Hello算法开源教程,系统介绍了回溯算法的框架代码及其在两类经典问题中的应用: 全排列问题:通过状态路径和选择集合生成所有排列,针对有无重复元素分别采用selected剪枝(避免重复选择)和duplicated剪枝(避免重复排列) 子集和问题:在元素可重复选择的前提下,通过实时计算元素和进行剪枝优化。文章通过清晰的代码示例展示了如何调整回溯框架解决具体问题,并强调了剪枝策略对提升效率的
2025-12-29 12:19:59
775
原创 CTFMisc刷题WriteUp
本文分享了四道CTF题目的解题过程:1)通过在线条形码扫描工具解码图片获得flag{TENSHINE};2)在流量包中搜索"shell"发现JPEG流获取flag;3)使用Stegsolve工具分析图片颜色隐写得到flag;4)从图片分离出压缩包后爆破密码解压获得flag。解题过程涉及条形码识别、流量分析、图片隐写和压缩包破解等技术,展示了多种CTF题型的解题思路。
2025-12-24 12:01:06
332
原创 图算法的笔记
本文介绍了图数据结构的基本概念、常见类型与术语,以及两种主要表示方法:邻接矩阵和邻接表。图由顶点和边组成,可分为无向图、有向图、连通图等类型。邻接矩阵以空间换时间,适合频繁边操作;邻接表以时间换空间,适合处理稀疏图。文章详细分析了两种表示方法下基础操作的时间复杂度,并提供了C++实现代码,包含顶点和边的增删查改功能。通过问答形式解答了代码实现中的关键问题,如邻接矩阵的构建顺序、异常处理等,帮助读者深入理解图数据结构的实现原理。
2025-12-20 01:03:20
741
原创 哈希表笔记
本文介绍了哈希表的基本概念、常用操作及简单实现。哈希表通过哈希函数建立键值映射,支持高效查询、添加和删除操作。文章使用C++示例代码展示了unordered_map的使用方法,并实现了一个基于数组的简单哈希表。同时讨论了哈希冲突问题及其解决方案,包括扩容和两种结构改良方法(链式地址和开放寻址)。哈希表作为一种高效的数据结构,其核心在于通过哈希函数快速定位数据存储位置。
2025-12-18 00:37:57
496
原创 二分查找笔记
本文介绍了二分查找算法及其变种应用。主要内容包括:1. 二分查找的基本实现步骤,通过双指针逐步缩小搜索范围;2. 算法的优点(高效、节省空间)和局限性(仅适用于有序数组);3. 二分查找在插入点问题中的应用,包括无重复元素和有重复元素两种情况;4. 利用二分查找寻找元素边界的两种方法,通过巧妙构造目标值来定位左右边界。文章提供了详细的代码实现,展示了二分查找在搜索和边界定位问题中的灵活应用。
2025-12-15 16:43:53
631
原创 计数排序学习笔记
计数排序是一种基于统计的整数排序算法,主要步骤包括:统计元素最大值、构建计数数组统计出现次数,并根据计数结果重构有序数组。算法有两种实现方式:简单版直接展开计数结果,完整版通过前缀和计算尾索引实现稳定排序。计数排序本质上是桶排序的特例,适用于数据量大但范围小的情况,且只能处理非负整数。其时间复杂度为O(n+m),其中n为元素数量,m为数据范围。
2025-12-07 16:09:20
361
原创 螺旋填充算法(蛇形填充)
螺旋填充算法(蛇形算法)是一种用于填充n*n矩阵的方法。该算法通过初始化四个边界变量(左、右、顶、底),依次按顺时针方向填充矩阵四边,并不断收缩边界直至填充完成。关键步骤包括:从左到右填充顶边、从上到下填充右边、从右到左填充底边、从下到上填充左边,同时需注意边界条件以避免重复填充。示例代码展示了该算法的C++实现,当输入n=4时,输出结果为顺时针螺旋排列的数字矩阵。该算法适用于各类矩阵填充问题。
2025-10-04 13:59:22
144
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅