首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何快速判断某 URL 是否 20 亿的网址 URL 集合

若此时随便输入一个 url,你如何快速判断该 url 是否在这个黑名单?并且需在给定内存空间(比如:500M)内快速判断出。...布隆过滤器可以用于检索一个元素是否一个集合。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。 是不是描述的比较抽象?那就直接了解其原理吧!...比如:某个URL(X)的哈希是2,那么落到这个byte数组第二位上就是1,这个byte数组将是:000….00000010,重复的,将这20亿个数全部哈希并落到byte数组。...但是如果这个byte数组上的第二位是0,那么这个URL(X)就一定不存在集合。...使用场景 1、黑名单 2、URL去重 3、单词拼写检查 4、Key-Value缓存系统的Key校验 5、ID校验,比如订单系统查询某个订单ID是否存在,如果不存在就直接返回。

1.8K30
您找到你想要的搜索结果了吗?
是的
没有找到

一道腾讯面试题:如何快速判断某 URL 是否 20 亿的网址 URL 集合

若此时随便输入一个 url,你如何快速判断该 url 是否在这个黑名单?并且需在给定内存空间(比如:500M)内快速判断出。...布隆过滤器可以用于检索一个元素是否一个集合。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。 是不是描述的比较抽象?那就直接了解其原理吧!...比如:某个URL(X)的哈希是2,那么落到这个byte数组第二位上就是1,这个byte数组将是:000….00000010,重复的,将这20亿个数全部哈希并落到byte数组。...但是如果这个byte数组上的第二位是0,那么这个URL(X)就一定不存在集合。...使用场景 1、黑名单 2、URL去重 3、单词拼写检查 4、Key-Value缓存系统的Key校验 5、ID校验,比如订单系统查询某个订单ID是否存在,如果不存在就直接返回。

1K40

2023-06-11:redis如何在100个亿URL快速判断某URL是否存在?

2023-06-11:redis如何在100个亿URL快速判断某URL是否存在?...当数据量小的时候,这么思考是对的, 确实,将值映射到 HashMap 的 Key,可以 O(1) 的时间复杂度内返回结果,具有高效的优点。...如果整个网页黑名单系统包含100亿个网页URL,则简单的数据库查找操作将非常费时,并且如果每个URL空间为64B,则整个系统需要的内存空间将达到640GB,这对于一般的服务器来说是一个非常大的需求,难以实现...布隆过滤器 布隆过滤器简介 1970 年布隆提出了一种布隆过滤器的算法,用来判断一个元素是否一个集合。这种算法由一个二进制数组和一个 Hash 算法组成。...此外,Google Chrome浏览器也使用布隆过滤器来加速安全浏览服务。

16910

如何检测node是否存在内存泄露的隐患

虽然是节假日期间,但是果然自己还是闲不住,不折腾点东西感觉生活就失去了趣味,闲话不多说,直接开始这次的记录和分享吧。...一旦我们的服务器存在内存泄漏的风险,其后果将是不堪设想的,所以我们必须重视内存泄露的问题,及时的检测程序是否存在内存泄漏的隐患十分有必要。...devtool ---- 检测内存泄漏的工具有很多,memwatch、heapdump 这两款非常有名,但是我今天打算推荐另一款工具,没错,就是 devtool 。...安装: npm install devtool -g 安装过程你应该会碰到 electron 安装失败的问题(因为源墙外),解决方式如下: 先找到并删除 node_modules 的 electron...因为每次 http 请求进来都会调用 leak 方法往数组 leakArray 添加数据造成其一直存在于内存得不到释放。 好吧,运用 devtool 开始检测

4.1K20

一道有难度的经典大厂面试题:如何快速判断某 URL 是否 20 亿的网址 URL 集合

问题 问题描述:一个网站有 20 亿 url 存在一个黑名单,这个黑名单要怎么存?若此时随便输入一个 url,你如何快速判断该 url 是否在这个黑名单?...布隆过滤器可以用于检索一个元素是否一个集合。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。 是不是描述的比较抽象?那就直接了解其原理吧!...为了存储这个byte数组,系统只需要: 2147483647/8/1024/1024=256M 比如:某个URL(X)的哈希是2,那么落到这个byte数组第二位上就是1,这个byte数组将是:000…...使用场景 布隆过滤器的巨大用处就是,能够迅速判断一个元素是否一个集合。...它的常用使用场景如下: 1、黑名单 : 反垃圾邮件,从数十亿个垃圾邮件列表判断某邮箱是否垃圾邮箱(同理,垃圾短信) 2、URL去重 : 网页爬虫对URL的去重,避免爬取相同的URL地址 3、单词拼写检查

78720

PHP检测一个类是否可以被foreach遍历

PHP检测一个类是否可以被foreach遍历 PHP,我们可以非常简单的判断一个变量是什么类型,也可以非常方便的确定一个数组的长度从而决定这个数组是否可以遍历。那么类呢?...我们要如何知道这个类是否可以通过 foreach 来进行遍历呢?其实,PHP已经为我们提供了一个现成的接口。...PHP手册,Traversable 接口正是用于检测一个类是否可以被 foreach 遍历的接口。...这是一个无法 PHP 脚本实现的内部引擎接口。IteratorAggregate 或 Iterator 接口可以用来代替它。...相信我们决大部分人也并没有使用过这个接口来判断过类是否可以被遍历。但是从上面的例子我们可以看出,迭代器能够自定义我们需要输出的内容。相对来说比直接的对象遍历更加的灵活可控。

1.9K10

C如何知道动态分配是否成功

因此,依靠 malloc 确定分配是否成功是一个困难的问题。只有写入和读取新分配的内存时才能发现。...---- 设置是否开启过量内存 通过 /proc/sys/vm/overcommit_memory查看是否支持过量内存。Windows 不允许过量使用(但仍使用相同的虚拟/物理内存设计)。...或者使用 mmap & mlock 来验证分配是否成功,但该进程仍然可以随时因任何原因被 OOM 杀死。 macOS 上也是如此。...由于fork Unix 上非常普遍,因此很快就需要过度使用。否则,fork/exec 将停止在任何使用超过一半系统内存的进程工作。 这就是 Linux 所做的。...对于使用它们的每个进程,共享库可能会同时计入实内存和虚拟内存,即使它们占用相同页面的只读或写时复制内存,并且内存映射文件可能会被全部计入虚拟内存,即使只有一小部分文件被读取,并且 Linux 上

2.6K20

Java如何高效判断数组是否包含某个元素

原文作者:Hollis_Chuang 原文地址:http://www.hollischuang.com/archives/1269 如何检查一个数组(无序)是否包含一个特定的值?...这是一个Java中经常用到的并且非常有用的操作。同时,这个问题在Stack Overflow也是一个非常热门的问题。...投票比较高的几个答案给出了几种不同的方法,但是他们的时间复杂度也是各不相同的。本文将分析几种常见用法及其时间成本。...查找有序数组是否包含某个值的用法如下: public static boolean useArraysBinarySearch(String[] arr, String targetValue) {...实际上,如果你需要借助数组或者集合类高效地检查数组是否包含特定值,一个已排序的列表或树可以做到时间复杂度为O(log(n)),hashset可以达到O(1)。

5.1K10

如何用OpenCVPython实现人脸检测

选自towardsdatascience 本教程将介绍如何使用 OpenCV 和 Dlib Python 创建和运行人脸检测算法。同时还将添加一些功能,以同时检测多个面部的眼睛和嘴巴。...级联分类器包含检测目标的几百个样本图像以及不包含检测目标的其他图像上进行训练。 我们如何检测图上是否有人脸呢?...这样计算上无法实现实时人脸检测。那么,该如何加快这个过程呢? 一旦通过矩形框识别到有用区域,则在与之完全不同的区域上就无需再做计算了。这一点可以通过 Adaboost 实现。...训练该模型时,变量如下: 每个阶段分类器数量 每个阶段的特征数量 每个阶段的阈值 幸运的是, OpenCV ,整个模型已经经过预训练,可直接用于人脸检测。...理论 HOG 背后的想法是将特征提取到一个向量,并将其输入到分类算法,例如支持向量机,它将评估人脸(或实际想识别的任何对象)是否存在于某个区域中。

1.5K20

如何用OpenCVPython实现人脸检测

选自towardsdatascience 作者:Maël Fabien 机器之心编译 参与:高璇、张倩、淑婷 本教程将介绍如何使用 OpenCV 和 Dlib Python 创建和运行人脸检测算法...级联分类器包含检测目标的几百个样本图像以及不包含检测目标的其他图像上进行训练。 我们如何检测图上是否有人脸呢?...这样计算上无法实现实时人脸检测。那么,该如何加快这个过程呢? 一旦通过矩形框识别到有用区域,则在与之完全不同的区域上就无需再做计算了。这一点可以通过 Adaboost 实现。...训练该模型时,变量如下: 每个阶段分类器数量 每个阶段的特征数量 每个阶段的阈值 幸运的是, OpenCV ,整个模型已经经过预训练,可直接用于人脸检测。...理论 HOG 背后的想法是将特征提取到一个向量,并将其输入到分类算法,例如支持向量机,它将评估人脸(或实际想识别的任何对象)是否存在于某个区域中。

1.4K30

如何在大量数据快速检测某个数据是否存在?

前言不知道大家面试时有没有被问过“如何在大量数据快速检测某个数据是否存在”。如果有过相关的思考和解决方案,看看你的方案是否和本文一样。...问题剖析通常我们查找某个数据是否存在需要借助一些集合,比如数组、列表、哈希表、树等,其中哈希表相对其他集合的查找速度较快,但是这里有个重点“大量数据”,比如“13亿个人的集合查找某个人是否存在”,如果就使用哈希表来存储...布隆过滤器介绍布隆过滤器是1970年一个叫布隆的人提出来的,主要用于检测一个元素是否一个集合里。其空间效率和查询时间都远远超过一般的算法,但是会存在一定的失误率,下面对其进行详细说明。...(如果有对哈希函数个数有疑问的,请继续向下看)同样,查找该元素时以同样的方式进行查找,通过哈希函数映射到数组,如果下标对应的值为1,说明该元素存在。...但是,查找时会有失误率,先看图当元素2插入后位图的状态如图左,此后,如果检测元素3存不存在位图中(元素3在此之前并没有添加进来),因为哈希存在冲突问题,所以可能会出现图右的情况,这就是查找失误了。

20800

AAAI 2020 | DIoU和CIoU:IoU目标检测的正确打开方式

IoU loss的实现形式有很多种,除公式2外,还有UnitBox的交叉熵形式和IoUNet的Smooth-L1形式   这里论文主要讨论的类似YOLO的检测网络,按照GT是否cell判断当前...bbox是否需要回归,所以可能存在无交集的情况。...]   论文考虑到bbox回归三要素的长宽比还没被考虑到计算,因此,进一步DIoU的基础上提出了CIoU。...  原始的NMS,IoU指标用于抑制多余的检测框,但由于仅考虑了重叠区域,经常会造成错误的抑制,特别是bbox包含的情况下。...注意到,CIoU小物体上的性能都有所下降,可能由于长宽比对小物体的检测贡献不大,因为此时中心点比长宽比重要 [1240]   图7对GIoU和CIoU的结果进行了可视化,可以看到,中大型物体检测上,

3.9K00
领券