漫画:Dijkstra算法的优化在上一篇漫画中,小灰介绍了单源最短路径算法Dijkstra,没看过的小伙伴可以看下:漫画:图的“最短路径”问题漫画中我们遗留了一个问题:如何求得最短路径的详细节点,而不仅仅是距离?在本篇中,我们将会给与解答。我们仍然以下面这个带权图为例,找出从顶点A到顶点G的最短距离。详细过程如下:第1步,创建距离表和前置顶点表。距离表的Key是顶点名称,Value是从起点A到对应
分类:
编程语言 时间:
2020-11-18 13:18:27
阅读次数:
11
漫画:什么是KMP算法?—————第二天—————————————————前情回顾在字符串匹配算法的前两讲,我们分别介绍了暴力算法BF算法,利用哈希值进行比较的RK算法,以及尽量减少比较次数的BM算法,没看过的小伙伴可以点击下方链接:BF算法和RK算法BM算法如果没时间细看也没关系,就让我带着大家简单梳理一下。首先,给定“主串”和“模式串”如下:BF算法是如何工作的?正如同它的全称BruteFor
分类:
编程语言 时间:
2020-11-18 12:54:02
阅读次数:
7
漫画:如何优化“字符串匹配算法”?说起“字符串匹配”,恐怕算得上是计算机领域应用最多的功能之一,为了满足这一需求,聪明的计算机科学家们发明了许多巧妙的算法。在上一篇漫画中,我们介绍了BF算法和RK算法,没看过的小伙伴可以先补补课:漫画:什么是字符串匹配算法?今天,我们来介绍一种性能大大优化的字符串匹配算法。BF算法是如何工作的?正如同它的全称BruteForce一样,BF算法使用简单粗暴的方式,对
分类:
编程语言 时间:
2020-11-18 12:53:30
阅读次数:
8
漫画:什么是字符串匹配算法?—————第二天—————什么意思呢?让我们来举一个例子:在上图中,字符串B是A的子串,B第一次在A中出现的位置下标是2(字符串的首位下标是0),所以返回2。我们再看另一个例子:在上图中,字符串B在A中并不存在,所以返回-1。为了统一概念,在后文中,我们把字符串A称为主串,把字符串B称为模式串。小灰的想法简单粗暴,让我们用下面的例子来演示一下:第一轮,我们从主串的首位开
分类:
编程语言 时间:
2020-11-18 12:52:37
阅读次数:
8
一道二进制子串算法,让面试官都解不出来?算法题目:给定一个字符串s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例1:输入:"00110011"输出:6解释:有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011”,“01”。注意,一些重复出
分类:
编程语言 时间:
2020-11-18 12:52:16
阅读次数:
9
1.插入排序//排序函数funcsortarr(arr*[]int)*[]int{fori:=1;i<len(*arr);i++{maxindex:=(*arr)[i]//默认一个数为最大值index:=i-1//index从0开始forindex>=0&&(*arr)[index]>maxindex{//index大于等于0,如果数组中有比maxindex值大的
分类:
编程语言 时间:
2020-11-18 12:36:32
阅读次数:
5
线性回归是机器学习中的概念,线性回归预测算法一般用以解决“使用已知样本对未知公式参数的估计”类问题。举个栗子:商家卖鞋,可利用历史上每个季度鞋的定价x与销量y,来预估“定价与销量的关系”(y=ax+b),以辅助对鞋子进行最佳定价。一、几个基本概念回归(regression):用已知样本对未知公式参数的估计。Y=f(X1,X2,X3),这里回归函数f(X1,X2,X3)可能是任意函数。线性回归(li
分类:
其他好文 时间:
2020-11-18 12:20:33
阅读次数:
4
工程架构方向的程序员,看到推荐/搜索/广告等和算法相关的技术,心中或多或少有一丝胆怯。但认真研究之后,发现其实没有这么难。今天的1分钟系列,给大家介绍下推荐系统中的“协同过滤”,绝无任何公式,保证大伙弄懂。什么是协同过滤(CollaborativeFiltering)?答:通过找到兴趣相投,或者有共同经验的群体,来向用户推荐感兴趣的信息。举例,如何协同过滤,来对用户A进行电影推荐?答:简要步骤如下
分类:
其他好文 时间:
2020-11-18 12:19:03
阅读次数:
3
上一篇《1分钟了解区块链的本质》,介绍了什么是区块链,区块链是一个没有管理员,每个节点都拥有全部数据,高可用的分布式存储系统。文章的留言里,不少朋友会用比特币来解释区块链,那区块链与比特币是什么关系?答:区块链是分布式存储,比特币是基于该存储的应用,其他诸如莱特币,以太币都是基于区块链的电子货币应用。理论上,使用上层应用来解释底层存储是不合适的。如上图,mysql是底层存储,wechat是上层应用
分类:
其他好文 时间:
2020-11-18 12:18:23
阅读次数:
4
原作者:书呆子Rico 《递归的内涵与经典应用》 http://my.csdn.net/justloveyou_ 摘要: 大师 L. Peter Deutsch 说过:To Iterate is Human, to Recurse, Divine.中文译为:人理解迭代,神理解递归。毋庸置疑地,递归确 ...
分类:
编程语言 时间:
2020-11-17 12:59:47
阅读次数:
21