Go语言中文网 为您找到相关结果 3

多少人去字节跳动面试挂在了这道题上...

题:给你一个装满水的 8 升满壶和两个分别是 5 升、3 升的空壶,请想个优雅的办法,使得其中一个水壶恰好装 4 升水,每一步的操作只能是倒空或倒满。 image 理解了这个题目的意思之后,我们的第一个方法肯定就是使用强大的脑力来进行暴力破解法,瓶子里的水在我们的脑子里颠三倒四,但是脑子有可能没那么清晰,想了几步之后就开始出现记忆错乱,然后就不得不开始慢慢重播。 甚至到最后好不容易搞定了,但是怎么走过来的步骤又给忘记的一干二净 —— 智商好像受到了点小小的侮辱! 这道题其实有一道非常科学的解决方法 —— 广度遍历,我们将三个瓶子的状态标示为一个数。 8 0 0 然后开始拓展这个数的所有可能的状态,第一步这个数可以变为,括号里的数是上一步的数字 3 5 0(8 0 0) 、 5 0 3(8 0...阅读全文

博文 2020-05-23 09:32:54 Android高级架构

golang 实现bloom filter

今天下午不知怎么了,突然脑子里出现了bloom filter这个东西。做爬虫这么久了,还没找到过应用场景,就想着自己实现一个玩玩。原理很简单. 先定义一个n长的数组, 每位都为0, 添加记录时进行k次hash, 再将hash出的int % n作为index, 将对应index位设置成1. 每次判断时都去做同样的操作,判断是否每一位都是1,只要有一位不是1,则这条记录肯定不存在. 但如果全是1也不一定是存在的。 bloom filter原理描述网上太多,直接上链接 https://blog.csdn.net/hguisu/article/details/7866173 根据原理实现了简单的支持redis, 内存, 文件三种工作模式的bloom filter. https://github.co...阅读全文

博文 2018-03-24 17:33:05 疯狂的小企鹅