面试手撕题与场景题

提前批和秋招陆续开始了,加上最近看牛客面经发现,除了传统手撕题,还有一些要写小 demo 的场景题。我也是在一边学习一边准备着,整理好的就放到下面这个仓库啦,大家一起学习。

Github Link:https://github.com/EnbinYang/cpp-tips

手撕题

对应文件夹为 hand-written:

  1. 线程池(DONE)
  2. 单例类(懒汉 & 饿汉)
  3. 哈希表(TODO)
  4. vector(TODO)

场景题

对应文件夹为 interview:

  1. 多线程对多个文件内的数字求和
  2. 实现一个简单的异步任务并获取计算结果

语法糖

对应文件夹为 grammar,存放一些 C++ 的语法糖:

  1. std::move

常见 bug 与解决方案

对应文件夹为 common-bugs,存放一些 C++ 常见的 bug 和解决方法:

  1. 使用 weak_ptr 解决 shared_ptr 循环引用计数无法清零
#我发现了面试通关密码#
全部评论
面试写线程池,我直接心里默默祝福面试官
点赞 回复 分享
发布于 2023-07-16 14:06 上海
有没有java的,蹲一下啊
点赞 回复 分享
发布于 2023-07-16 21:35 安徽
cpp已死
点赞 回复 分享
发布于 2023-07-16 21:50 北京
m
点赞 回复 分享
发布于 2023-08-08 14:41 四川
m
点赞 回复 分享
发布于 2023-08-17 16:22 湖北
m
点赞 回复 分享
发布于 2023-08-25 11:38 陕西

相关推荐

11-21 11:40
已编辑
电子科技大学 Java
【更新】一面过感觉要寄,发个面经攒攒人品。整体面试体验非常好,一点八股没问,全程面试官有引导回答,不过也可能因为我是Java,公司内部是go所以没问什么八股。先聊项目,先让讲讲项目里觉得最有意思的部分,然后面试官根据项目深挖,这里就不说了,跟项目强相关。问了个高并发怎么处理,问了个不同任务怎么隔离不相互影响。然后是Linux的使用,问了最常用的命令,然后出了个需求:一个文件夹大量文件,根据文件内容重命名文件,问这里应该怎么处理。我一开始想的用shell里面的管道一套流程处理。然后提到文件名可能不在第一行,那可能用shell就比较复杂,改为用Python脚本处理。然后说如何并行修改(如果文件非常非常多)?这里没答出来,然后说假设可以并行了,怎么保证同名文件要处理,不相互覆盖。这里我答的操作前备份+加锁处理。    上面并行的问题正确答案应该是shell并行用&符号,或者用parallel这类的工具。最后是一个算法,用均匀的rand7产生均匀的rand10,这里一开始没写出来,提醒之后实现了标准版本(leetcode 470),但是这样每次生成有9/49的概率生成失败重新循环,面试官希望进一步增加效率,理论上可以趋近100%的生成成功率应该怎么做。面试官提醒可以增大分母,生成失败的可能性的分子是固定的最大不超过9,那么我只要多次调用rand7,去生成一个很大的数,这样失败的概率就是9/∞。总之问题很有引导性也很有针对性,并且没问八股,真考思维,手撕题,感觉很舒服同时又很难。
查看9道真题和解析
点赞 评论 收藏
分享
20 114 评论
分享
牛客网
牛客企业服务