kth most frequent element
我自己大概的思路是,假设input是char[]
先过一遍array,放到一个hashtable里面,key是每个char,value是出现了多少次
然后建priority queue,自己写个comparator。
“非常大”的意思就是能存在文件里,但是一次放不到内存中。可以先把所有的element按照比如hash(x) % 1000的格式先分割到f1, f2, ..., f1000这1000个小文件中,这样保证相同的element肯定在同一个小文件中;且每个小文件能够单独放入内存里。然后分别对每个小文件找Top K的元素;最后再找这1000K个元素中的Top K即可。
我自己大概的思路是,假设input是char[]
先过一遍array,放到一个hashtable里面,key是每个char,value是出现了多少次
然后建priority queue,自己写个comparator。
“非常大”的意思就是能存在文件里,但是一次放不到内存中。可以先把所有的element按照比如hash(x) % 1000的格式先分割到f1, f2, ..., f1000这1000个小文件中,这样保证相同的element肯定在同一个小文件中;且每个小文件能够单独放入内存里。然后分别对每个小文件找Top K的元素;最后再找这1000K个元素中的Top K即可。