- 博客(5)
- 收藏
- 关注
转载 哈希分治法 - 100亿个数字中找出最大的10个
100亿个数字找出最大的10个 类似: 微信10亿用户中,获取红包最多的前100用户: 1、首先一点,对于海量数据处理,思路基本上是:必须分块处理,然后再合并起来。 2、对于每一块必须找出10个最大的数,因为第一块中10个最大数中的最小的,可能比第二块中10最大数中的最大的还要大。 3、分块处理,再合并。也就是Google MapReduce 的基本思想。Google有很多的服务器,每个服务...
2019-11-04 14:15:03
1072
转载 哈希分治法 - 统计海量数据中出现次数最多的前10个IP
场景 这是一个 ip 地址 127.0.0.1 假设有100亿个这样的 ip 地址存在文件中 这个文件大小大约是 100GB问题:要统计出100亿个 ip 中,重复出现次数最多的前10个 分析 100GB 几乎不可能一次加载进内存进行操作,所以必须要拆分 那么可以利用分治的思想,把规模大的问题化小,然后解决各个小的问题,最后得出结果。 实现思路 ipv4 地址是一个 32 位的整数,可以...
2019-11-04 14:01:58
1095
2
转载 理解单链表的反转(java实现)
要求很简单,输入一个链表,反转链表后,输出新链表的表头。 反转链表是有2种方法(递归法,遍历法)实现的,面试官最爱考察的算法无非是斐波那契数列和单链表反转,递归方法实现链表反转比较优雅,但是对于不了解递归的同学来说还是有理解难度的。 1|1递归法 总体来说,递归法是从最后一个Node开始,在弹栈的过程中将指针顺序置换的。 为了方便理解,我们以 1->2->3-&g...
2019-11-04 11:02:14
151
转载 二叉树 - 前序遍历、中序遍历、后序遍历
前序遍历 前序遍历(DLR),是二叉树遍历的一种,也叫做先根遍历、先序遍历、前序周游,可记做根左右。前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。 前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。 若二叉树为空则结束返回,否则: (1)访问根结点。 (2)前序遍历左子树。 (3)前序遍历右子树 。 ...
2019-11-02 21:15:16
533
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人