![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 84
BrHiker
这个作者很懒,什么都没留下…
展开
-
【算法】并查集
并查集主要用于解决一些元素分组的问题,管理一系列不相交的集合,并支持两种操作:**合并(union):**把两个不相交的集合合并为一个集合。**查询(find):**查询两个元素是否在同一个集合中。并查集引入并查集的重要思想在于,用集合中的一个元素代表集合。并查集的初始化中,每个元素都是一个集合。在进行合并时,如下图所示,将要合并的节点指向另一个节点一番合并后,产生下图形式:假设2号要与6号合并,首先去找到2号的根节点,再去找到6号的根节点,根据根节点是否相同来判断它们是否已经属于同一集原创 2020-08-30 11:53:21 · 1945 阅读 · 0 评论 -
【算法】一致性哈希
一致性哈希在分布式集群系统中会用到一致性哈希算法,在此进行记录。一般系统分为前端服务器和后端服务器,前端服务器负责数据的接收和分发工作,后端负责存储、处理、提供数据。后端服务器不止一台,此时就涉及到了数据如何分发的问题。一致性哈希算法就可以用来解决这一问题。经典结构通过哈希函数我们可以建立key-value的对应关系。假设目前一共有3台服务器用于数据存储,那么在一个数据存储request发来时,可以对其计算一个hash value,然后将hash value模3来决定将该数据存储在哪台机器当中。由于原创 2020-08-28 11:49:32 · 165 阅读 · 0 评论 -
【算法】布隆过滤器
布隆过滤器算法题目如果一个黑名单网站包含100亿个黑名单网页,每个网页最多占64B,设计一个系统,判断当前的URL是否在这个黑名单当中,要求额外空间不超过30GB,允许误差率为万分之一。解题思路:布隆过滤器基础介绍布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量(位图)和一系列随机映射函数(哈希函数)。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。实际应用布隆过原创 2020-08-25 15:05:37 · 449 阅读 · 0 评论 -
【算法】餐馆问题(美团)
问题:某餐馆有n张桌子,每张桌子有一个参数:a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大。链接:https://www.nowcoder.com/questionTerminal/d2cced737eb54a3aa550f53bb3cc19d0来源:牛客网输入描述:输入包括m+2行。 第一行两个整数n(1 <= n <= 50000),m(1 <= m <=原创 2020-07-26 17:01:56 · 654 阅读 · 0 评论 -
【牛客网左神算法课】复杂度与排序
复杂度与排序复杂度排序算法稳定性含义对数器冒泡排序选择排序插入排序归并排序快速排序经典快排堆排序复杂度最优解含义:先满足时间复杂度最低,再看额外空间复杂度。排序算法稳定性含义对于相同的值,在排序前后其相对顺序不变。如:对数器一个检测一个算法对错的方法:对数器写两个算法流程,一个是尝试的流程精妙复杂度低的,一个是容易写的不容易出错的,然后去生成许多组随机数,如果两个流程运行结果相同,那么可以说明尝试的算法是正确的。这个方法在贪心策略的问题中尤其好用,不知道策略哪种好,而且证明很难,直接用原创 2020-08-28 15:06:51 · 280 阅读 · 0 评论 -
【STL】STL之Vector的常见用法
STL之Vector的常见用法Vector的定义Vector容器内元素访问Vector常用函数Vector的常见用途Vector的定义//typename可以是任何基本类型,例如int, double, char, 结构体, STL标准容器vector<typename> name vector<int> name;vector<double> name;vector<char> name;vector<node> name; /原创 2020-07-12 20:14:24 · 231 阅读 · 0 评论