李国强的技术博客
  • 首页
  • 算法专栏
  • 应用
    学习导航 在线工具
  • 归档
  • 分类
  • 标签
  • 关于
  • 友链

Hexo 博客双分支部署实战:源码与部署分离的最佳实践

前言在使用 Hexo + GitHub Pages 搭建博客时,我们经常会遇到一个问题:如何同时管理源代码和部署文件?传统的做法是将源代码和生成的静态文件混在一起,或者使用两个仓库分别管理。今天,我将分享一个更优雅的解决方案:使用双分支策略,实现源码与部署的完美分离。
2025-11-15
博客搭建 > Hexo 部署
#Hexo #GitHub Pages #CI/CD #Git

Part 4.8:网络流——从水管到算法的流量优化之旅

如何在一个管道网络中,从源头向目的地输送尽可能多的流量?这就是网络流问题的核心。从交通规划、通信网络设计,到供应链优化,网络流算法无处不在。本文将深入讲解网络流的核心概念、最大流最小割定理、Ford-Fulkerson 方法以及其 BFS 优化版本 Edmonds-Karp 算法。作为图论系列的收官之作,我们还将回顾整个系列的核心内容,为你的图论学习之旅画上圆满的句号。
2025-11-29
大学算法全体系 > Part 4:图论算法
#图论 #算法进阶 #网络流 #最大流 #最小割 #Ford-Fulkerson #Edmonds-Karp

Part 4.7:二分图匹配——月老的红线与匈牙利算法

如何为两组不同的资源找到最优的配对方案?这就是二分图匹配要解决的问题。从任务分配、婚姻匹配,到在线广告的精准投放,二分图匹配在资源优化配置中扮演着关键角色。本文将从二分图的定义出发,深入讲解求解最大匹配的经典算法——匈牙利算法,通过“寻找增广路”的核心思想和 Python 代码,带你掌握这一优雅的图论算法。
2025-11-28
大学算法全体系 > Part 4:图论算法
#图论 #算法应用 #二分图 #二分图匹配 #匈牙利算法 #最大匹配

Part 4.6:强连通分量 (SCC)——将复杂图分解为核心簇

在一个复杂的有向图中,哪些节点是“紧密耦合”的?强连通分量(Strongly Connected Components, SCC)为我们提供了一种将有向图分解为若干个“最大强连通子图”的方法。这在社交网络分析、地图路径规划等领域有重要应用。本文将深入讲解求解 SCC 的经典算法——Tarjan 算法,通过图解和 Python 代码,带你掌握这一基于深度优先搜索的精妙算法。
2025-11-27
大学算法全体系 > Part 4:图论算法
#DFS #图论 #算法进阶 #强连通分量 #SCC #Tarjan算法

Part 4.5:拓扑排序——安排任务的艺术

如何安排一系列有依赖关系的任务,使得每个任务在执行前,其所有前置任务都已完成?这就是拓扑排序要解决的核心问题。从编译代码、安装软件包,到安排大学课程,拓扑排序无处不在。本文将深入讲解拓扑排序的两种经典实现方法:基于入度的 Kahn 算法(BFS)和基于深搜的 DFS 算法。通过图解和 Python 代码,你将掌握这一在有向无环图(DAG)中安排顺序的强大工具。
2025-11-26
大学算法全体系 > Part 4:图论算法
#DFS #图论 #拓扑排序 #DAG #有向无环图 #Kahn算法 #算法应用

Part 4.4:多源最短路与负权环 (Bellman-Ford & Floyd-Warshall)

在上一篇文章中,我们解决了从一个点出发的最短路问题。但如果我们需要知道任意两点之间的最短路径呢?或者,如果图中存在负权边甚至负权环,我们该如何应对?本文将深入探讨两种强大的最短路算法:Bellman-Ford 算法(单源,可处理负权边并检测负权环)和 Floyd-Warshall 算法(多源,优雅的动态规划解法)。掌握它们,你将能应对更复杂的路径问题。
2025-11-25
大学算法全体系 > Part 4:图论算法
#图论 #最短路径 #动态规划 #Bellman-Ford算法 #Floyd-Warshall算法 #负权环

Part 4.3:单源最短路——从一点到所有点的最优路径 (Dijkstra & SPFA)

如何在一个带权图中,找到从一个起点到所有其他点的最短路径?这是单源最短路问题的核心。无论是地图导航、网络路由,还是游戏中的寻路,最短路算法都是不可或缺的工具。本文将深入讲解两种经典的单源最短路算法:Dijkstra 算法(适用于非负权图)和 SPFA 算法(可处理负权边)。通过详细的图解、Python 代码和复杂度分析,带你掌握这两种算法的精髓。
2025-11-24
大学算法全体系 > Part 4:图论算法
#图论 #贪心算法 #最短路径 #Dijkstra算法 #SPFA算法 #动态规划

Part 4.2:最小生成树 (MST)——Kruskal 与 Prim 算法

如何用最低的成本连接一个网络中的所有节点?这就是最小生成树(Minimum Spanning Tree, MST)问题。无论是铺设电缆、设计交通网络,还是优化网络路由,MST 都是核心算法。本文将深入探讨解决 MST 问题的两大经典贪心算法:Kruskal 算法和 Prim 算法。我们将通过图解、代码实现和复杂度分析,带你彻底掌握这两种方法的精髓。
2025-11-23
大学算法全体系 > Part 4:图论算法
#图论 #最小生成树 #MST #Kruskal #Prim #贪心算法 #算法进阶

Part 4.1:图论入门——图的表示与遍历 (BFS & DFS)

欢迎来到图论的世界!图是描述“连接”关系的强大数学模型,从社交网络到地图导航,无处不在。本文是图论系列的开篇,将带你学习图论的两块基石:如何在代码中表示一个图(邻接矩阵与邻接表),以及如何系统地访问图中的每一个节点——广度优先搜索(BFS)和深度优先搜索(DFS)。掌握它们,是开启所有高级图论算法大门的钥匙。
2025-11-22
大学算法全体系 > Part 4:图论算法
#数据结构 #算法基础 #DFS #BFS #图论 #广度优先搜索 #深度优先搜索

Part 8.3:大语言模型时代的算法学习——AI 改变了什么,什么不会变

ChatGPT 能秒解 LeetCode,GitHub Copilot 能自动补全代码,那我们还需要学算法吗?在大语言模型 (LLM) 时代,算法知识的价值发生了什么变化?本文将深入探讨 AI 如何改变算法学习和应用的方式,哪些能力变得更重要,哪些能力依然不可替代,以及如何利用 AI 工具来加速你的算法学习之旅。
2025-11-22
大学算法全体系 > Part 8:工程与面试
#大语言模型 #LLM #AI #ChatGPT #算法学习 #未来趋势

Part 6.9:后缀自动机 (SAM)——字符串算法的集大成者

后缀自动机(Suffix Automaton, SAM)是字符串算法领域的皇冠明珠,它是一个能够识别一个字符串所有子串的最小确定性有限自动机(DFA)。SAM 不仅能解决后缀数组能解决的所有问题,还能处理更复杂的在线查询、动态添加字符等场景。本文将从自动机的基本概念出发,深入讲解 SAM 的构建原理、状态转移、后缀链接等核心机制,并通过 Python 代码和实际案例,带你征服这座字符串算法的最高峰
2025-11-21
大学算法全体系 > Part 6:字符串算法
#算法进阶 #字符串 #后缀自动机 #Suffix Automaton #SAM #自动机

Part 8.2:算法面试策略——白板前的系统性思考法

算法面试不仅仅是考察你是否“知道”某个算法,更是考察你在压力下解决未知问题的能力、沟通能力和代码功底。很多人刷了上百道题,但在面试时依然大脑空白。本文将为你提供一个经过实战检验的、系统性的解题框架(“五步法”),教你如何清晰地思考、有效地沟通,并写出让面试官满意的代码,最终征服算法面试。
2025-11-21
大学算法全体系 > Part 8:工程与面试
#面试技巧 #算法面试 #LeetCode #白板编程 #沟通技巧 #求职
123…5

搜索

Hexo Fluid
总访问量 次 总访客数 人