自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

英雄哪里出来

公众号【夜深人静写算法】回复 C,获取更多学习资料

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

原创 热烈欢迎CSDN副总裁邹欣老师入驻知识星球

英雄算法联盟

2023-05-24 08:12:40 5922 15

原创 关于我,一个35岁的老程序员的心路历程

打工十余年,从盛大、网易、电魂、再到字节,再到 130w粉 的知识博主,我都经历了什么?如果你现在正为是否要在编程行业深耕下去而头疼,那么可以看一下我的故事,希望可以激励到你,看完一定不会让你失望,至少一定会让你热血沸腾!

2023-04-12 08:35:43 13170 76

原创 「 英雄哪里出来 」算法博客阅读指引

都整理好了,看谁学得快!

2022-01-11 12:47:44 55659 52

原创 《算法和数据结构》数学基础总结

算法中的数学基础,你掌握了多少?

2021-12-27 06:39:59 16953 17

原创 《算法和数据结构》LeetCode 篇

面试中所有需要用到的算法都在这里了!

2021-12-21 19:21:45 12157 5

原创 《算法和数据结构》排序篇

九天刷完100道排序题

2021-12-13 07:54:38 8169 27

原创 《算法和数据结构》初出茅庐篇

如果你只是因为想找到一份好的工作而来刷题,那我劝你放弃这个念头!因为,你坚持不了!

2021-12-06 08:25:12 9301 24

原创 《算法和数据结构》算法篇

数据结构、动态规划、基础排序、暴力算法

2021-11-12 08:16:14 148522 144

原创 《算法和数据结构》动态规划篇

动态规划,面试的噩梦,第九题你会吗?

2021-10-16 01:16:03 54182 57

原创 《二分枚举答案(配合数据结构)》题集

二分枚举答案+数据结构

2025-06-27 21:33:56 580

原创 《二分枚举答案(配合经典算法)》题集

本文整理了一套算法竞赛题集,包含模板题、课内题和课后题三个类别。模板题集包含经典算法题如"分巧克力",课内题涵盖"倒水"、"冶炼金属"等基础题目。课后题按算法类型分类,包括差分、贪心/排序、二维前缀和、K大数、BFS和最短路等专题,涉及42-135行代码量的题目。题集选自多个OJ平台,其中课内题提供视频讲解,课后题为选做内容,旨在帮助学员逐步提升算法能力。作者基于近万道题目的刷题经验精选而成,适合不同阶段的算法学习者。

2025-06-27 19:38:34 187

原创 《二分枚举答案(最值问题)》题集

本文整理了英雄算法课程的配套题集,包含不同难度等级的编程练习题。题集分为模板题集(如分巧克力)、课内题集(如倒水、冶炼金属)和课后题集(如跳石头、信号塔)三大类,覆盖最小值最大值等常见算法题型。所有题目精选自四大OJ平台(HDOJ、蓝桥云课、洛谷、力扣),其中课内题配有视频讲解。作者建议先独立完成模板和课内题,课后题可根据情况选做。该题集基于作者多年刷题经验总结,适合从入门到竞赛的系统性算法训练。

2025-06-27 19:27:55 245

原创 《哈希表》K倍区间(解题报告)

本文介绍了一种高效计算K倍区间(子数组和能被K整除的子数组数量)的算法。该算法基于前缀和技术,结合哈希表和多重集合进行优化。主要步骤包括:1)计算前缀和数组;2)利用哈希表存储前缀和模K余数;3)通过二分查找统计符合条件的子数组数量。算法时间复杂度为O(n log n),空间复杂度为O(n)。核心在于通过余数处理和有序集合的快速查询,避免暴力枚举带来的性能问题。文末提供了完整的C++实现代码和详细解释。

2025-06-23 23:32:54 971

原创 一张图告诉你蓝桥杯到底学哪些?

摘要: 【英雄算法联盟】是一个5600+成员的编程社群,提供零基础答疑、多语言教学(C/C++/Python)、数据结构与算法集训、求职辅导等服务。算法模块按难度分为红黄绿(重点)、蓝(选学)、灰(高阶)三类,建议优先掌握前三类。7月暑期集训支持自主进度安排,强调质量而非速度,包含视频学习+打卡刷题+答疑。创始人分享十年刷题心得,强调正反馈与持续学习的重要性。社群提供1v1答疑和匿名提问,详情可通过文末链接了解。(148字)

2025-06-20 10:09:43 533

原创 《强连通分量(tarjan算法)》基础概念

Tarjan算法是一种高效求解有向图强连通分量(SCC)的基于DFS的算法。它通过记录顶点访问时间戳(dfn)和可回溯的最早时间戳(low),利用栈结构识别SCC:当dfn[u]=low[u]时,栈中顶点构成一个SCC。算法时间复杂度为O(n+m),空间复杂度O(n+m),适用于环路检测、任务调度分析等场景。实现时需维护时间戳、栈、访问标记等数据结构,核心是DFS过程中的时间戳更新和SCC判定。典型应用包括缩点构建DAG和解决2-SAT问题。

2025-06-19 11:18:44 753

原创 《二分图最大匹配》基础概念

匈牙利算法是一种求解二分图最大匹配的有效方法,其核心是通过寻找增广路径并反转边状态来逐步增加匹配数。算法采用邻接表存储图结构,初始化匹配数组后,从左边顶点出发递归查找增广路径,成功找到则匹配数加1。该算法时间复杂度为O(n×e),适用于任务分配、资源调度等问题。示例演示了从3个顶点出发找到3条匹配边的过程,空间复杂度为O(n×m)。该算法在稀疏图和稠密图中均有良好表现。

2025-06-19 11:14:51 951

原创 《最近公共祖先》基础概念

摘要 最近公共祖先(LCA)算法用于查找树结构中两个节点的最近共同祖先。其核心思想是采用倍增法预处理节点的二进制级祖先,将查询复杂度优化至对数级别。算法分为预处理和查询两个阶段:预处理阶段通过BFS遍历构建每个节点的2^j级祖先表和深度信息;查询阶段通过二进制分解步长实现跳跃式查找,先对齐节点深度,再同步向上跳跃寻找LCA。该算法时间复杂度为O(n log n)预处理和O(log n)查询,空间复杂度O(n log n),适用于树结构中的路径查询、网络流分析等场景。

2025-06-19 11:12:34 682

原创 《manacher》基础概念

Manacher算法是一种线性时间复杂度(O(n))的最长回文子串查找算法。其核心步骤包括:1)通过插入特殊字符预处理字符串,将奇偶长度回文统一处理;2)利用回文对称性初始化回文半径数组,减少重复计算;3)通过中心扩展法确定每个位置的最长回文半径。该算法通过维护当前最右回文边界和中心位置优化计算过程,相比暴力枚举法显著提升效率。典型应用场景包括文本处理和密码学模式匹配。虽然需要O(n)额外存储空间,但其线性时间复杂度使其成为解决回文问题的首选算法。

2025-06-19 11:05:16 914

原创 《字符串哈希》基础概念

本文介绍了字符串哈希技术,将字符串转换为数值以实现快速比较和子串查询。算法核心是利用基数映射和前缀哈希数组,通过预处理O(n)时间建立哈希数组和幂次数组,实现子串哈希值的O(1)时间查询。具体包括基数选择、前缀哈希计算、子串哈希公式推导,并分析了时间/空间复杂度(均为O(n))。应用场景包括字符串匹配、重复子串检测等。文章还提供了伪代码实现,解释了哈希冲突处理方法(如双哈希策略),并附有实例演示。该技术适合需要频繁比较子串的场景,效率优于直接字符串比较。

2025-06-19 11:01:48 474

原创 《区间DP》基础概念

本文介绍了区间动态规划(Interval DP)的基本概念与实现方法。该算法通过将问题分解为小区间子问题,逐步合并最优解,应用于石子合并、矩阵连乘等问题。核心步骤包括状态定义(dp[i][j])、状态转移方程(枚举分割点k)、初始化(长度为1的区间)和遍历顺序(从小到大)。伪代码展示了前缀和优化和计算流程,时间复杂度O(n³),空间复杂度O(n²)。文章还提供了石子合并问题的具体实例,并指出优化方向(如四边形不等式)。适用于n≤200的问题。

2025-06-19 10:57:13 623

原创 《状压DP(01矩阵约束问题)》基础概念

本文介绍了一种利用状态压缩动态规划解决01矩阵约束问题的方法。算法通过二进制数表示矩阵行状态,结合深度优先搜索生成合法状态转移,可处理棋盘放置、资源分配等场景。文章详细阐述了状态定义、约束条件检查、滚动数组优化等核心思想,并提供了完整的伪代码实现。该算法时间复杂度为O(n×4^m),适用于列数较小(m≤20)的问题,可通过预处理进一步优化性能。文末提示该内容为作者系列编程课程的配套讲解。

2025-06-19 10:47:43 642

原创 《状压DP(哈密尔顿路问题)》基础概念

本文介绍了状态压缩动态规划(状压DP)解决哈密尔顿路问题的算法。哈密尔顿路问题要求在图中找到经过所有顶点且仅一次的路径。算法核心是将顶点集合用二进制表示,通过动态规划记录中间状态避免重复计算。适用于旅行商问题、任务调度等场景。文章详细阐述了状态定义、转移方程和初始化方法,并提供了伪代码实现,包括递归与记忆化优化。复杂度分析表明该算法时间复杂度为O(n²×2ⁿ),适用于顶点数n≤20的情况。最后指出了状态压缩和迭代实现的优化方向,并提供了配套课程信息。

2025-06-19 10:37:03 1019

原创 《数位DP》基础概念

数位DP是一种通过动态规划高效处理数字计数问题的算法。它将数字按位拆解,利用状态转移和记忆化搜索统计满足特定条件的数字数量。核心思想包括定义状态(如数位位置、前导零、限制条件等)、枚举每位数字的可能取值,并通过递归+记忆化避免重复计算。该算法适用于二进制统计、数字和计算等场景,时间复杂度为O(base×d×状态数)。文章详细介绍了数位DP的状态定义、转移逻辑和伪代码实现,并提供了复杂度分析和优化建议,是处理大范围数字计数问题的有效方法。

2025-06-19 10:15:46 676

原创 《树上(分组)背包》基础概念

本文介绍了树上分组背包问题算法,该算法结合树形结构和背包问题,解决具有依赖关系的资源优化问题。算法通过递归处理树节点,定义状态dp[i][j]表示子树i在容量j时的最优价值,采用自底向上方式计算。核心步骤包括初始化状态、递归处理子树、状态转移以及结果获取。伪代码展示了具体实现,包括数据结构定义、初始化函数、递归DFS和结果计算。时间复杂度主要取决于节点数和背包容量,最坏情况下为O(n×V²),空间复杂度为O(n×V)。该算法适用于公司资源分配等树形依赖场景。

2025-06-19 09:55:50 765

原创 《树形DP(选与不选模型)》基础概念

树形动态规划(树形DP)是一种基于树结构的动态规划方法,适用于解决组合优化问题。其核心思想是利用树的递归特性,通过定义"选与不选"两种状态来求解子树最优解。算法采用后序遍历实现状态转移,适用于最小点覆盖、最大独立集等问题。状态转移逻辑根据具体问题定制,如根节点不选时子节点需全选(最小点覆盖),或根节点选时子节点不能选(最大独立集)。伪代码展示了核心框架,包括初始化、递归DFS和状态合并函数。算法时间复杂度为O(n),空间复杂度也为O(n),适用于大规模树结构问题。实现时需根据问题性质定制

2025-06-19 09:48:11 715

原创 《分组背包》基础概念

分组背包问题是一种经典的动态规划问题,要求在n组物品中每组最多选一个物品放入容量为V的背包,使总价值最大。其核心是通过动态规划分解子问题,定义dp[i][j]表示前i组物品在容量j时的最大价值。状态转移时考虑不选或选组内某个物品的情况。算法采用三重循环实现,时间复杂度为O(n×V×c_max),空间复杂度可优化至O(V)。相比01背包和多重背包,分组背包强调组内物品互斥选择,适用于资源分配等场景。

2025-06-19 09:37:16 856

原创 《多重背包》基础概念

多重背包问题是一种经典的组合优化问题,介于01背包和完全背包之间,每种物品有数量限制。本文介绍了通过二进制拆分将多重背包转化为01背包的解法,利用动态规划求解。核心思想是将每种物品按二进制方式拆分成若干组,每组视为一个独立物品,从而将时间复杂度从O(n×c_i×V)优化到O(n×log(c_i)×V)。文章详细阐述了算法思路、伪代码实现,并通过示例演示了二进制拆分和状态转移过程,最后分析了时间复杂度为O(n×log(c_max)×V)和空间复杂度为O(V)的算法性能。该方法高效解决了资源分配等实际场景中的多

2025-06-19 09:30:34 665

原创 《二维线性DP》基础概念

摘要:二维线性动态规划通过定义二维状态数组dp[i][j],利用状态转移方程和边界条件求解复杂问题。典型应用包括数字三角形最大路径和(时间复杂度O(n²))与网格路径计数(含障碍物处理)。算法核心在于分解重叠子问题并存储中间结果,可通过空间优化(如一维数组)提升效率。本文详细阐述了两类问题的伪代码实现、状态转移逻辑及复杂度分析,适用于路径规划、序列比对等场景。(150字)

2025-06-19 09:24:22 590

原创 《最长公共子序列》基础概念

最长公共子序列(LCS)问题旨在寻找两个序列的最长公共子序列,应用于文本比较、DNA序列比对等领域。算法采用动态规划,定义二维数组dp[i][j]表示序列前i和j个元素的LCS长度,通过比较元素是否相等进行状态转移:相等时dp[i][j]=dp[i-1][j-1]+1,不等时取dp[i-1][j]和dp[i][j-1]中的最大值。空间复杂度为O(n×m),时间复杂度为O(n×m),优于暴力解法的指数复杂度。算法通过路径回溯可获取具体LCS序列。

2025-06-19 09:13:17 899

原创 《最长单调子序列》基础概念

本文介绍了一种求解最长递增子序列的高效算法,采用动态规划思想结合贪心策略和二分查找进行优化。算法维护一个辅助数组存储递增子序列的最小末尾元素,通过二分查找确定每个元素的插入位置,时间复杂度为O(n log n),优于传统O(n²)的DP方法。文章详细讲解了算法思路、伪代码实现、处理流程和复杂度分析,并举例说明其正确性。该算法在生物信息学、数据压缩等领域有广泛应用,是处理大规模数据的有效解决方案。

2025-06-19 09:00:23 738

原创 《最大子段和》基础概念

最大子段和问题求解一个整数序列中连续子段的最大和。该问题在金融分析和计算机视觉中有广泛应用。动态规划是有效解法之一,定义状态dp[i]为以第i个元素结尾的最大子段和,状态转移方程为dp[i]=a[i]+max(dp[i-1],0)。伪代码展示了算法实现过程,包括初始化、边界处理和状态转移。算法时间复杂度为O(n),空间复杂度可优化至O(1)。示例演示了对于数组[-2,1,-3,4]的计算过程,最终最大子段和为4。

2025-06-19 08:41:09 501

原创 算法竞赛中最不值得学的10个算法

投产比最低的几个算法

2025-06-14 00:41:43 972 2

原创 《单调队列》题集

本文整理了一套算法竞赛训练题集,包含模板题、课内题和课后题三个层次。题集来自作者近万道题目的刷题总结,配套抖音系列编程课程(C++/C/Python)。其中模板题和课内题(如单调队列、滑动窗口等)有视频讲解,要求必做;课后题(如游戏、子矩阵等)为选做提高题。题目选自多个OJ平台(蓝桥云课、洛谷等),涵盖ACM模式和核心代码模式,适合不同学习需求。建议先独立解题,再看讲解视频,通过大量练习提升竞赛能力。

2025-06-13 20:00:37 372

原创 《二叉堆》题集

本文整理了一套算法学习题集,分为三部分:1)模板题集(如堆的实现);2)课内必做题(含最大集合、k大数等);3)课后选做题(如合并果子、幸福列车等)。这些题目精选自多个OJ平台(HDOJ、蓝桥、洛谷、力扣),涵盖不同竞赛模式,配套作者抖音课程的视频讲解。建议学员先独立完成模板和课内题,课后题则根据个人需求选做以提升竞赛能力。题集凝聚作者近万题刷题经验,旨在帮助学员系统掌握算法知识。

2025-06-13 19:51:13 238

原创 《字典树》题集

本文整理了一份字典树算法专项训练题集,分为模板题、课内题和课后题三部分。包含字典树基础模板、字符串映射、前缀统计、异或最大值等应用场景,涉及蓝桥云课、HDOJ、POJ等多个OJ平台。其中模板题和课内题配有视频讲解,是学习重点;课后题为选做内容,包含字典树与深搜、欧拉回路等综合应用,适合能力提升。题集由算法教练精选近万道题目总结而成,采用多平台题库组合,兼顾竞赛训练和求职需求。

2025-06-13 19:25:15 266

原创 《线段树》题集

线段树题集

2025-06-13 19:16:13 819

原创 《ST表》题集

ST表题集

2025-06-13 18:37:37 382

原创 《树状数组》题集

本文整理了树状数组相关题目集,分为模板题、课内题和课后题三大类。模板题包含单点更新和区间更新基础题型;课内题涉及排序、逆序对等基本应用;课后题则按一维/二维树状数组分类,涵盖单点更新、逆序数计算、离散化处理、动态规划结合等多种题型,并包含HDU、POJ等OJ平台的典型例题。题目类型丰富,适合系统训练树状数组的各种应用场景。

2025-06-13 18:27:10 639

原创 《并查集》题集

这是一份关于并查集算法的精选题目集,分为模板题、课内题和课后题三部分,覆盖从基础到进阶的各类应用场景。题集精选自蓝桥云课、洛谷、HDOJ等知名OJ平台,包含连通分量检测、环判断、最小生成树等经典问题。其中模板题和课内题配有视频讲解,是课程必备练习;课后题则提供更丰富的扩展练习,包括食物链、Parity game等经典难题。题集由资深算法讲师精心整理,适合不同层次的学习者系统掌握并查集算法的核心思想和应用技巧。

2025-06-13 17:14:52 298

原创 《单调栈》题集

《算法竞赛题集精选》由知名讲师"英雄哪里出来"精心编选,包含三类题目:模板题(含单调栈例题)、课内必做题(伦太郎、百亿富翁等)、课后选做题(共13道经典算法题)。题集涵盖HDOJ、蓝桥云课等平台,结合ACM模式和力扣的核心代码模式,适合不同学习目标。作者基于近万题实战经验,建议先独立完成前两类题目,课后选做题则可根据个人需求加强练习。该题集配套抖音系列编程课程,是提升算法竞赛能力的优质资源。

2025-06-13 14:18:44 248

光天化日学C语言.rar

C语言学习配套资料

2021-07-20

C语言轻量级编译调试工具_DevCpp6.5.rar

DevC++6.5

2021-06-14

空空如也

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

TA关注的人

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