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

LeetCode,给定一个链表,判断链表是否

力扣题目: 给定一个链表,判断链表是否环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表存在环。...为了表示给定链表的环,我们使用整数 pos 来表示链表尾连接到链表的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表没有环。...如果链表存在环,则返回 true 。否则,返回 false 。...哈希表 我们最容易想到的方法就是使用一个哈希表来存储所有节点。遍历所有节点,判断当前节点有没有存在哈希表,如果存在过说明该链表是环形链表,否则就将该节点加入哈希表。...false } slow = slow.Next fast = fast.Next.Next } return true } ---- 什么问题

56930

判断一个是否40亿个整数

最近看到一道经典面试题: 40亿的unsigned int数据(乱序),给定一个数字target, 判断该target是否存在于这40亿的数据?...准备工作: 如下代码随机生成[1, 2147483648)的整数集保存在D盘根目录下a.txt,生成数据(一行一个整数)之后(约占磁盘40G),用代码再统计一下生成的数字3999999040(嗯?...使用set集合add操作,将40亿的数据一次性加载进内存,然后只需要使用contains方法判断target是否存在即可 问题: 一个unsigned int的元素,需要占4B的空间,按照最坏的打算,40...计算机,bitmap是用作某个值(例如: 给定范围的整数),映射为位(bit), 也被叫做位数组或位图)。...亿, 这样我们可以开辟一个 (400000000 / 64 + 1)空间的大小, 数组一个long类型的值是64bit, 实际代表了64个long值: a[0]: 0~63 a[1]: 64~127

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

如何判断一个是否 40 亿个整数

今天他就去BAT的一家面试了。 简单的自我介绍后,面试官给了小史一个问题。 【面试现场】 ? ? 题目:我40亿个整数,再给一个新的整数,我需要判断新的整数是否40亿个整数,你会怎么做? ?...小史:我想想……哦,这样做的话,因为每台机器都可以一次性把数据读入内存,比较的时候不用来回加载数据了,所以可以节省加载数据的开销!这真是个好办法。...来了一个新的数,怎么判断是否40亿个位之中? ? 小史:我想想,对啊,40亿个位,40亿个数,那么每个位都是1,这。。。...这样一来,就可以做了,1代表第一个位,2代表第二个位,2的32次方代表最后一个位。40亿个数,存在的数就在相应的位置1,其他位就是0。 ? 吕老师:没错,那来了一个新的数呢?...顾名思义,就是用位来表示状态,从而节省空间。明天正好我一节课,就讲位图法,你可以来听一听。 【吕老师的课】 第二天,吕老师开始上课,他一开始就抛出了小史遇到的面试题。

83170

如何判断一个元素亿级数据是否存在?

前言 最近有朋友问我这么一个面试题目: 现在有一个非常庞大的数据,假设全是 int 类型。现在我给你一个数,你需要告诉我它是否存在其中(尽量高效)。 需求其实很清晰,只是要判断一个数据是否存在即可。...实际情况也是如此;既然要判断一个数据是否存在于集合,考虑的算法的效率以及准确性肯定是要把数据全部 load 到内存的。...它主要就是用于解决判断一个元素是否一个集合,但它的优势是只需要占用很小的内存空间以及有着高效的查询效率。 所以在这个场景下在合适不过了。...当一个 B1=1000 需要判断是否存在时,也是做两次 Hash 运算,定位到 0、2 处,此时他们的值都为 1 ,所以认为 B1=1000 存在于集合。 当一个 B2=3000 时,也是同理。... set 之前先通过 get() 判断这个数据是否存在于集合,如果已经存在则直接返回告知客户端写入失败。 接下来就是通过位运算进行 位或赋值。

1.2K20

如何判断一个元素亿级数据是否存在?

现在我给你一个数,你需要告诉我它是否存在其中(尽量高效)。 需求其实很清晰,只是要判断一个数据是否存在即可。 但这里一个比较重要的前提:非常庞大的数据。...实际情况也是如此;既然要判断一个数据是否存在于集合,考虑的算法的效率以及准确性肯定是要把数据全部 load 到内存的。...它主要就是用于解决判断一个元素是否一个集合,但它的优势是只需要占用很小的内存空间以及有着高效的查询效率。 所以在这个场景下在合适不过了。...当一个 B1=1000 需要判断是否存在时,也是做两次 Hash 运算,定位到 0、2 处,此时他们的值都为 1 ,所以认为 B1=1000 存在于集合。 当一个 B2=3000 时,也是同理。... set 之前先通过 get() 判断这个数据是否存在于集合,如果已经存在则直接返回告知客户端写入失败。 接下来就是通过位运算进行 位或赋值。

1.8K51

如何判断一个元素亿级数据是否存在?

需求其实很清晰,只是要判断一个数据是否存在即可。 但这里一个比较重要的前提:非常庞大的数据。 常规实现 先不考虑这个条件,我们脑海中出现的第一种方案是什么?...实际情况也是如此;既然要判断一个数据是否存在于集合,考虑的算法的效率以及准确性肯定是要把数据全部 load 到内存的。...它主要就是用于解决判断一个元素是否一个集合,但它的优势是只需要占用很小的内存空间以及有着高效的查询效率。 所以在这个场景下在合适不过了。...当一个 B1=1000 需要判断是否存在时,也是做两次 Hash 运算,定位到 0、2 处,此时他们的值都为 1 ,所以认为 B1=1000 存在于集合。 当一个 B2=3000 时,也是同理。... set 之前先通过 get() 判断这个数据是否存在于集合,如果已经存在则直接返回告知客户端写入失败。 接下来就是通过位运算进行 位或赋值。

2.5K10

如何判断一个元素亿级数据是否存在?

前言 最近有朋友问我这么一个面试题目: 现在有一个非常庞大的数据,假设全是 int 类型。现在我给你一个数,你需要告诉我它是否存在其中(尽量高效)。 需求其实很清晰,只是要判断一个数据是否存在即可。...实际情况也是如此;既然要判断一个数据是否存在于集合,考虑的算法的效率以及准确性肯定是要把数据全部 load 到内存的。...它主要就是用于解决判断一个元素是否一个集合,但它的优势是只需要占用很小的内存空间以及有着高效的查询效率。 所以在这个场景下在合适不过了。...当一个 B1=1000 需要判断是否存在时,也是做两次 Hash 运算,定位到 0、2 处,此时他们的值都为 1 ,所以认为 B1=1000 存在于集合。 当一个 B2=3000 时,也是同理。... set 之前先通过 get() 判断这个数据是否存在于集合,如果已经存在则直接返回告知客户端写入失败。 接下来就是通过位运算进行 位或赋值。

1.5K20

如何判断一个元素亿级数据是否存在?

前言 最近有朋友问我这么一个面试题目: 现在有一个非常庞大的数据,假设全是 int 类型。现在我给你一个数,你需要告诉我它是否存在其中(尽量高效)。 需求其实很清晰,只是要判断一个数据是否存在即可。...实际情况也是如此;既然要判断一个数据是否存在于集合,考虑的算法的效率以及准确性肯定是要把数据全部 load 到内存的。...它主要就是用于解决判断一个元素是否一个集合,但它的优势是只需要占用很小的内存空间以及有着高效的查询效率。 所以在这个场景下在合适不过了。...当一个 B1=1000 需要判断是否存在时,也是做两次 Hash 运算,定位到 0、2 处,此时他们的值都为 1 ,所以认为 B1=1000 存在于集合。 当一个 B2=3000 时,也是同理。... set 之前先通过 get() 判断这个数据是否存在于集合,如果已经存在则直接返回告知客户端写入失败。 接下来就是通过位运算进行 位或赋值。

1.3K30

【面试现场】如何判断一个是否40亿个整数

题目:我40亿个整数,再给一个新的整数,我需要判断新的整数是否40亿个整数,你会怎么做? ? ? ? ? ? ? ? ? ? ? ?...小史:我想想……哦,这样做的话,因为每台机器都可以一次性把数据读入内存,比较的时候不用来回加载数据了,所以可以节省加载数据的开销!这真是个好办法。...来了一个新的数,怎么判断是否40亿个位之中? ? 小史:我想想,对啊,40亿个位,40亿个数,那么每个位都是1,这。。。...这样一来,就可以做了,1代表第一个位,2代表第二个位,2的32次方代表最后一个位。40亿个数,存在的数就在相应的位置1,其他位就是0。 ? 吕老师:没错,那来了一个新的数呢?...顾名思义,就是用位来表示状态,从而节省空间。明天正好我一节课,就讲位图法,你可以来听一听。 【吕老师的课】 第二天,吕老师开始上课,他一开始就抛出了小史遇到的面试题。

61460

一日一技: Golang 如何快速判断字符串是否一个数组

使用 Python 的时候,如果要判断一个字符串是否一个包含字符串的列表,可以使用in 关键词,例如: name_list = ['pm', 'kingname', '青南'] if 'kingname...' in name_list: print('kingname 列表里面') 但是,Golang 是没有in这个关键词的,所以如果要判断一个字符串数组是否包含一个特定的字符串,就需要一个一个对比...但这种方式一个弊端,就是要遍历整个字符串数组。如果数组里面有100万条数据,那么平均要遍历50万次才能找到。这是一个非常费时间的操作。 有没有什么办法可以优化这个操作呢?... Golang 一个排序模块sort,它里面有一个sort.Strings()函数,可以对字符串数组进行排序。...同时,还有一个sort.SearchStrings()[1]函数,会用二分法一个有序字符串数组寻找特定字符串的索引。

10.3K41

每天10个前端小知识 【Day 6】

移动端点击 300ms 的延迟是因为移动端会有双击缩放的这个操作,因此浏览器 click 之后要等待 300ms,看用户有没有下一次点击,来判断这次操作是不是双击。...所以,上面的第二、三步,箭头函数都是没有办法执行的。 7. 数据类型检测的方式哪些? (1)typeof:其中数组、对象、null都会被判断为object,其他判断都正确。...可以看到,instanceof只能正确判断引用数据类型,而不能判断基本数据类型。instanceof 运算符可以用来测试一个对象在其原型链是否存在一个构造函数的 prototype 属性。... JavaScript ,NaN 最特殊的地方就是,我们不能使用相等运算符(== (en-US) 和 === (en-US))来判断一个是否是 NaN,因为 NaN == NaN 和 NaN ==...异步 http 请求线程: XMLHttpRequest 连接后通过浏览器新开一个线程请求,将检测到状态变更时,如果设置回调函数,异步线程就产生状态变更事件,将这个回调再放入事件队列

7310

Canvas射击怪物游戏之getImageData()碰撞检测思路

于是乎我开始考虑有没有一种计算方式,只要循环判断每个怪物是否被子弹碰撞就好了,就这样,getImageData()函数引起了我的注意。 ?...可我不想那么麻烦(懒),于是想有没有其他办法能够绕开或者避免该错误? 几经查询,发现真正出错的原因是因为调用了drawImage()函数之后,再调用getImageData()就会出错。...说来也巧,一本介绍Canvas使用的书籍,提到了“画布状态”这个词。比如fillStyle,font等这些属性,设置过一次之后,往后相关的样式属性都会保持设置时的状态。...然后灵光一闪,drawImage()函数肯定是要加载调用图片信息的,那么问题来了: 是否画布里调用drawImage()之后,也改变了画布的某种状态呢?...结果这样的算法又带来了一个坑,那就是,如果某一帧子弹刚好绘制空心矩形内部,岂不是捕捉不到了?因而,绘制子弹的时候,不仅仅要绘制子弹实体,还要绘制子弹的弹道。

1.2K20

javascript伪协议解析

=f2 formaction=javascript:alert(2)>submit 危害方式 这里可能会产生这种危害的地方,比如一个网站需要发布一个文章,发文的时候文中会自动填入一个网址进行嵌入...正确的方式是检测网址是否为上网址的格式,并且确保是https开头 这里一个后端存在这种漏洞案列 ">link` 这里虽然将";做了编码,但是没办法新增标签,也没办法跳脱引号新增属性,但是攻击者可以插入javascript伪协议 vue案例: import...,搭配一个元素看起来像网址,比如: console.log(new URL('javascript://huli.tw/%0aalert(1)')) 这个谷歌上没有问题,但是一些浏览器就会存在问题。...实际案例 这里是一个23年6月telegram的漏洞,网页版一个ensureProtocol函数,负责确认url有没有://,没有的话就加上, export function ensureProtocol

22210
领券