
工作面试题
yicoder
这个作者很懒,什么都没留下…
展开
-
统计英文文本中出现频率最高的10个单词
在v_JULY_v的文章中找到了这个问题的解法后用C++实现了一下,发现C++的代码非常的简洁。主要用到了标准库中的hash_map,优先级队列priority_queue。 算法的思路是:从头到尾遍历文件,从文件中读取遍历到的每一个单词。把遍历到的单词放到hash_map中,并统计这个单词出现的次数。遍历hash_map,将遍历到的单词的出现次数放到优先级队列中。当优先级队列的元...转载 2018-06-23 20:05:18 · 9098 阅读 · 1 评论 -
在一个数组中随机选择若干不重复的元素
问: 总共65535个端口,每次随机取一个,怎么保证每次取得和以前不一样?如果取了6万多次,后面的很容易重复,怎么优化?答:先用一个长度为65535的数组装有序装下1~65535。用一个变量length标记其数组长度,初始值为65535,用随机函数在[0,length)产生一个随机数,作为选取元素的下标,在抽取一个元素之后,将该元素与数组末端的最后一个元素交换,然后将数组最后一个元素扔掉,这里的扔...原创 2018-06-23 20:36:22 · 1769 阅读 · 0 评论