从linux了解世界
发布时间:2016-09-23 09:55:14
大数据处理:(求最大的n个用小根堆,最小的n个用大根堆)使用mapreduce统计文章中单词出现个数,首先对文章预处理,去掉标点,对连字符-处理,对缩写处理,大小写转换。然后对每个单词进行hash映射,假设映射为10组,对每组中同一种单词进行合并,然后把每组的结果进行合并。对40亿的ip地址进行排序,每个ip只出现一次可.........【阅读全文】
发布时间:2016-08-28 19:24:48
解题思路:将数组排序之后,如果数组中有数出现的次数超过了一半,则一定是中间的那个数。其中排序过程要考虑有重复数字的情况,用堆排序快速排序都可以。判断中间的数是否超过一半有很多种方法,为了锻炼自己,使用二分查找(借鉴九章算法的二分模板)分别找到该数的最左面最右面,得到个数。主方法://快排(考虑重复数.........【阅读全文】
发布时间:2016-08-25 15:50:26
leetcode上看到了一个智商爆表的解法:public int countDigitOne(int n) { int ones = 0; for (long m = 1; m ......【阅读全文】
发布时间:2016-08-09 11:36:20
计算理论中,没有Hash函数的说法,只有单向函数的说法。所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据。用“人 类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很容易计算出其结果来;而当给定结果的时候,很难计算出输入来,这就是单项函数。各种加密函 数都可以被认为是单.........【阅读全文】