字节跳动后端青训营

DAY4

一、【单选】go test 默认是以什么顺序执行测试的?

a. 多个 module 并发执行,单 module 下多个测试并发执行 b. 多个 module 并发执行,单 module 下多个测试串行执行 c. 多个 module 串行执行,单 module 下多个测试并发执行 d. 多个 module 串行执行,单 module 下多个测试串行执行

  • 答案 & 解析 多个 modules 会并发编译,然后并发执行测试,除非添加了额外的参数-p=1。单个 modules 下多个测试会串行执行,除非在测试函数内执行t.Parallel()。

二、【分布式文件处理,获取最多的 URL】如果有一个 20g 的日志文件,日志文件记录着用户访问过的 url,每一行为一个 url,给你一台 512M 的主机,找出出现次数最多的 10 个 url。

  • 解析 Top K算法:使用堆排序算法+大顶堆+10 个元素的数组。

IP 地址最多有 2^32=4G 种取值情况,所以不能完全加载到内存中处理; 可以考虑采用“分而治之”的思想,按照 IP 地址的 Hash(IP)%1024 值,把海量 IP 日志分别存储到 1024 个小文件中。这样,每个小文件最多包含 4MB 个 IP 地址; 对于每一个小文件,可以构建一个 IP 为 key,出现次数为 value 的 Hash map,同时记录当前出现次数最多的那个 IP 地址; 可以得到 1024 个小文件中的出现次数最多的 IP,再依据常规的排序算法得到总体上出现次数最多的 IP;

全部评论

相关推荐

07-08 13:48
门头沟学院 C++
点赞 评论 收藏
分享
07-07 11:33
江南大学 Java
已经在暑假实习了 ,没有明确说有hc,纠结实习到八月份会不会有点影响秋招毕竟感觉今年好多提前批
程序员小白条:92的话准备提前批,其他没必要,没面试机会的,而且你要准备充分,尤其八股和算法题
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
05-22 12:44
已编辑
门头沟学院 golang
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务