算法
Acmery_L
d = c++;
展开
-
算法 - 最短路径(三)- Bellman-Ford
算法 - 最短路径(三)- Bellman-Ford前言适用前提算法思想算法分步图解及解析第一次迭代第二轮迭代关于负圈前言之前在学习Bellman-Ford算法的时候,看了很多国内大牛写的算法解析(图解),但总觉得有一点不对劲,于是又上YouTube上找了几个讲解Bellman-Ford算法的视频看,方恍然大悟。所以在仅把我个人对此算法的理解写下来,若要真正追求真理,还请各位动手实验与观察。 适用前提没有负环的图,因为如果有负环的话可以一直在那个负环中刷出最短路径。 算法思想假设图中有V个节原创 2020-07-26 15:10:21 · 450 阅读 · 0 评论 -
算法 - 最短路径(二)- Dijkstra
算法 - 最短路径(2)- Dijkstra算法思路算法分步图解算法实现代码实现算法分析Dijkstra算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。 算法思路Dijkstra算法是一种类似于贪心的算法,步骤如下:首先指定一个节点,比如说V0,要计算V0到其他节点的最短路径。设置两个集合S和U:S中存放已找到的最短路径的顶点,初始时,集合S中只有一个顶点,即V0。U中存放当前还未找到最短路径的点,初始时,集合U中存放除了V0以外的所有点。在U中选取一个原创 2020-07-26 15:07:04 · 258 阅读 · 0 评论 -
算法 - 最短路径(一)- Floyd
算法 - 最短路径(一)- Floyd核心代码算法过程详解基本思想需要注意核心代码floyd的核心代码极度简单,时间复杂度为O(n3),代码实现部分只有五行: for(k=0;k<=n;k++) //遍历可经过的中点k for(i=0;i<=n;i++) //遍历起点i for(j=0;j<=n;j++) //遍历终点j if(e[i][j]>e[i][k]+e[k][j原创 2020-07-26 15:02:40 · 215 阅读 · 0 评论 -
误解题目引发的血案(KMP算法next数组的扩展应用)
误解题目引发的血案(KMP算法next数组的扩展应用)题目原文解题思路代码这个题目还可以折腾一下(榨取剩余价值)思路首先一个很简单的思路使用KMP中的next数组求解代码之前LeetCode上刷到一道题,题目很简单,但是由于但是误解了题意,所以做题的时候大费周折。。为了不辜负误解题意所作出的努力,所以决定把此过程记录下来。 题目原文对于字符串 S 和 T,只有在 S = T + … + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。返回最长字符串 X,要求满足 X 能除尽原创 2020-07-26 14:55:52 · 130 阅读 · 0 评论 -
算法 - KMP算法原理顿悟有感
算法 - KMP算法KMP?KMP核心思想举个栗子上点代码next数组(1)若P~j~ == P~t~(2) 若P~j~ 和 P~t~不相等改进上面的KMP算法nextval求解nextval数组的一般方法上代码中国开国七十一年三月十二日下午,解衣欲睡,雨声入耳,悟以往,思来日,惧无以为生计,遂至哔哩哔哩寻KMP算术,观后遂顿悟,以作文记之。KMP? KMP算法是在某一字符串中寻找给定子串的算法,比起逐一比较的方法,KMP算法快了不少。KMP核心思想 比较过程如图所示: 此处的疑点:为什原创 2020-07-26 14:51:32 · 223 阅读 · 0 评论