精巧的算法们
xk_一步一步来
一步一步
展开
-
摩尔投票法--求众数
提问: 给定一个int型数组,找出该数组中出现次数最多的int值。解决方案: 遍历该数组,统计每个int值出现次数,再遍历该集合,取出出现次数最大的int值。这算是一个比较经典的解决办法,其中可能会用到Map来做统计。如果不使用Map,则时间复杂度会超过线性复杂度。除此之外,也没有什么特别好的办法。今天在leetcode上遇到这样一道题目,提问: 给定一个int型数组,找出该数组中出现次数...原创 2019-04-04 00:06:51 · 287 阅读 · 0 评论 -
大量数据去重:Bitmap和布隆过滤器(Bloom Filter)
转自:https://blog.csdn.net/zdxiq000/article/details/57626464 5TB的硬盘上放满了数据,请写一个算法将这些数据进行排重。如果这些数据是一些32bit大小的数据该如何解决?如果是64bit的呢?在面试时遇到的问题,问题的解决方案十分典型,但对于海量数据处理接触少的同学可能一时也想不到什么好方案。介绍两个算法,对于空间的利用到达了一种极...转载 2019-03-24 00:06:41 · 658 阅读 · 0 评论 -
那些惊艳的算法们(一)——布隆过滤器
转自:https://blog.csdn.net/xinzhongtianxia/article/details/81294922同步发表于:http://blog.lanjingdejia.com/articles/2018/07/13/1531479344453.html问题假设你现在要处理这样一个问题,你有一个网站并且拥有很多访客,每当有用户访问时,你想知道这个ip是不是第一次访问你的...转载 2019-03-24 00:37:14 · 199 阅读 · 0 评论 -
图的基本算法(BFS和DFS)
https://www.jianshu.com/p/70952b51f0c8图是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或联系。对象由顶点(V)表示,而对象之间的关系或者关联则通过图的边(E)来表示。图可以分为有向图和无向图,一般用G=(V,E)来表示图。经常用邻接矩阵或者邻接表来描述一副图。在图的基本算法中,最初需要接触的就是图的遍历算法,根据访问节点的顺序,可分为广度优...转载 2019-06-13 20:40:37 · 250 阅读 · 0 评论 -
一致性hash算法 - consistent hashing
转自:https://blog.csdn.net/sparkliang/article/details/5279393 一致性hash算法(consistenthashing)张亮consistent hashing算法早在1997年就在论文Consistenthashing and random trees中被提出,目前在cache系统中应用越来越广泛;...转载 2019-04-29 11:02:18 · 433 阅读 · 0 评论 -
Hash算法总结
https://blog.csdn.net/asdzheng/article/details/702260071. Hash是什么,它的作用先举个例子。我们每个活在世上的人,为了能够参与各种社会活动,都需要一个用于识别自己的标志。也许你觉得名字或是身份证就足以代表你这个人,但是这种代表性非常脆弱,因为重名的人很多,身份证也可以伪造。最可靠的办法是把一个人的所有基因序列记录下来用来代表这个人,但显...转载 2019-04-29 10:04:46 · 4288 阅读 · 0 评论 -
KMP算法的来龙去脉
https://www.cnblogs.com/en-heng/p/5091365.html原创 2019-04-17 18:57:24 · 385 阅读 · 0 评论 -
KMP的next数组求法详解
转自:https://blog.csdn.net/yutong5818/article/details/81319120kmp算法的精髓就在于next数组,从而达到跳跃式匹配的高效模式。而next数组的值是代表着字符串的前缀与后缀相同的最大长度,(不能包括自身)。"前缀"指除了最后一个字符以外,一个字符串的全部头部组合;"后缀"指除了第一个字符以外,一个字符串的全部尾部组合。这里举个例子...转载 2019-04-17 17:01:04 · 742 阅读 · 0 评论 -
floyd算法
转自:https://blog.csdn.net/zhongkeli/article/details/8832946这个算法主要要弄懂三个循环的顺序关系。弗洛伊德(Floyd)算法过程:1、用D[v][w]记录每一对顶点的最短距离。2、依次扫描每一个点,并以其为基点再遍历所有每一对顶点D[][]的值,看看是否可用过该基点让这对顶点间的距离更小。算法理解:最短距离有三种情况:1...转载 2019-04-03 17:17:37 · 1889 阅读 · 0 评论 -
最小生成树(Kruskal和Prim算法)
参考: https://blog.csdn.net/luoshixian099/article/details/51908175关于图的几个概念定义:连通图:在无向图中,若任意两个顶点vivi都有路径相通,则称该有向图为强连通图。连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;权代表着连接连个顶点的代价,称这种连通图叫做连通网。生成树:一个连通图的生成树是指一...转载 2019-04-03 16:38:27 · 272 阅读 · 0 评论 -
最短路径问题---Floyd算法详解
参考: https://blog.csdn.net/qq_35644234/article/details/60875818前言 Genius only means hard-working all one’s life. Name:Willam Time:2017/3/81、最短路径问题介绍问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最...转载 2019-04-03 16:25:24 · 318 阅读 · 0 评论 -
最短路径问题---Dijkstra算法详解
参考: https://blog.csdn.net/qq_35644234/article/details/60870719前言 Nobody can go back and start a new beginning,but anyone can start today and make a new ending. Name:Willam Time:2017/3/81、最短路径问题介...转载 2019-04-03 16:20:07 · 442 阅读 · 0 评论 -
唯一ID生成器snowflake
https://blog.csdn.net/xinzhongtianxia/article/details/86497942同步发表在个人博客中:http://blog.lanjingdejia.com/articles/2019/01/15/1547516544183.html分布式全局唯一ID生成器很多场景需要使用全局唯一ID,用来标识唯一一条消息,唯一一笔交易,唯一一个用户,唯一一张图...转载 2019-07-17 23:41:10 · 1002 阅读 · 0 评论