【百度面经】八股文咋这么多|0725

alt alt alt alt alt alt alt alt alt alt alt alt alt alt alt alt 遍历这十万个单词,对于每个单词,检查它是否已经在哈希表中:

  • 如果在,则将其对应的值(即出现次数)加1。
  • 如果不在,则将其添加到哈希表中,并将对应的值设为1。

4. 找出访问频率最高的单词

在统计完所有单词的频率后,需要遍历哈希表来找出访问频率最高的单词。有几种方法可以实现这一点:

  • 直接遍历:遍历哈希表,记录并更新最高频率及其对应的单词。这种方法的时间复杂度是O(n),其中n是哈希表中键的数量。
  • 优先队列(最小堆):在统计过程中,使用一个最小堆来维护当前频率最高的几个单词。每次更新单词频率时,都尝试将其加入堆中,并移除堆中频率较低的单词以保持堆的大小。这种方法的空间复杂度较低,但时间复杂度会因为堆操作而有所增加。

5. 优化

  • 内存管理:如果单词总数非常大,而访问频率最高的单词只占很小一部分,可以考虑使用更高效的数据结构(如Trie树结合哈希表)来优化存储和查询效率。
  • 并行处理:如果系统资源允许,可以考虑使用多线程或多进程来并行处理单词的读取和频率统计,以缩短总处理时间。

6. 结果输出

最后,输出访问频率最高的单词及其频率。

面经原帖由持续努力的小趴菜发布,答案由程序员Hasity整理。

alt

#软件开发笔面经#
校招面经大全 文章被收录于专栏

收录各个网友分享的各个公司的面经,并给出答案。

全部评论
m
点赞 回复 分享
发布于 07-26 10:13 北京
面经好评,看看我的offer选择吧。
点赞 回复 分享
发布于 07-26 19:25 广西
腾讯云智研发
校招火热招聘中
官网直投
哥 请问你在哪里投的啊
点赞 回复 分享
发布于 08-02 10:16 重庆

相关推荐

08-25 16:57
已编辑
西安电子科技大学 C++
面试时间:2024.08.23自我介绍C++相关:1. 面向过程和面向对象的区别2. 重载和重写的区别3. 拷贝构造能不能传值?const不加&?4. 父指针指向子类,父指针的构造函数中有虚函数,子类重写了虚函数,调用谁的函数?5. 说一说智能指针6. unique_ptr能不能做返回值?7. static_cast能不能把基类指针转换成子类指针?子类->基类呢?8. 你了解的类型转换?9. 说一说vector10. vector和list的区别11. 如果要插入10000个数据,怎么做?12. 迭代器失效有了解过吗?13. 有了解过Vector底层是用堆还是栈吗?14. 队列实现栈?网络:1. 说一说TCP的粘包2. TCP如何实现可靠传输的?操作系统:1. 并发和并行的区别2. 进程和线程的区别QT:1. 介绍信号槽机制2. connect第五个参数有哪些?总结:面了快一小时,高强度八股拷打,嘴皮子都要秃噜喽!!!有些问题不太记得了,能回想起来的大概就是这些(真的问了很多很多...)不过面试官感觉还是挺懂的,也不是简单从题库挑八股去问,有时候会深入考察一下。看到我项目里面有用到QT,就问了QT的两个问题,后来介绍说公司前端大部分就是QT,不过比较复杂的那种,后端用go/c++比较多,最后问我愿意做前端还是后端,我说前后端都行(但是如果可以的话,当然更想做后端哈哈哈)反问环节,说一共两轮技术面,一面大概一个星期出结果(?),总体来讲还是挺不错的一次面试体验结果:8.25已挂
诺瓦星云一面184人在聊 查看40道真题和解析
点赞 评论 收藏
分享
14 59 评论
分享
牛客网
牛客企业服务