博主头像
HailinCode

Full-Stack Developer

分类 算法 下的文章

算法

蓝桥杯 正则问题

考虑一种简单的正则表达式:只由 x ( ) | 组成的正则表达式。求这个正则表达式能接受的最长字符串的长度。 例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是 xxxxxx,长度是 6。 输入:一个由…

算法

取球博弈

两个人玩取球游戏。 一共有 N 个球,每人轮流取球,每次可取集合 {n1, n2, n3} 中的任意数目。 如果无法继续取球,则游戏结束。 此时,持有奇数个球的一方获胜。如果两人持有球数同为奇数或同为偶数,则为平局。 双…

算法

蓝桥杯 蓝桥国王

蓝桥王国中有 N 个城市,编号从 1 到 N,王国首都是 1 号城市。国王需要知道从首都到每个城市的最短距离。 给定 M 条有向道路,每条道路连接两个城市 u 和 v,长度为 w。如果某个城市从首都不可达,则输出 -1。…

算法

Dijkstra 堆优化版

给定一个有向带权图,求从起点到所有其他节点的最短路径长度。图中可能存在重边和自环,边权为正数。 Dijkstra 算法适用于所有边权非负的图。堆优化版本通过优先队列(最小堆)快速取出当前距离最小的未确定节点,在简单图的常…

算法

KMP 算法

给定一个文本串 s 和一个模式串 p,在 s 中查找 p 第一次出现的位置。如果不存在则返回 -1。 暴力匹配的时间复杂度为 O(m × n),而 KMP 算法通过预处理模式串的"前后缀信息",将匹配过程优化到 O(m …