2.3 腾讯PC客户端暑期实习一面

上来先在腾讯会议的小程序里面做一道算法题。
topk问题:给一个只包含大小写字母的字符串,求出现次数第k大的字母。
我先说了思路,写了一会儿编译没通过。
面试官开始问小根堆方法的时间复杂度,然后问有没有更快的方法。
回答:优化后的快速排序,和枢纽元素相比较来减少递归分支。又问了快排的最优和平均时间复杂度。

讲一下栈内存和堆内存的区别,在编写程序方面的优缺点?

能否编写程序触发栈溢出和堆溢出?

如果用new创建一个对象,再用free去释放会导致什么问题?

挑一个项目讲讲过程中遇到的问题和挑战。

项目中的文件断点续传是单线程还是多线程?

多线程下怎么去分配线程执行续传操作?如何处理资源竞争?

项目还有其他的遇到问题吗,又是如何解决的?
#牛客AI配图神器#
反问环节:
简历投递的入职时间还能改吗。答:可以的,和HR沟通就行。
部门在哪些城市。答:主要在广州,北京也有一部分。
平时上下班出勤有要求吗。答:按自己的作息来,有的人上下班很晚,有的人正常作息。

总结:算法题不难,但卡在一些编译细节上没AC比较可惜。C++基础知识回答的都很详细,项目也能自圆其说。面试官人很好,写算法的时候还会提醒。
全部评论
感觉比较重视代码基本能力的
1 回复 分享
发布于 02-07 20:50 陕西
接着面呗无限复活
1 回复 分享
发布于 02-04 17:16 湖北
下午面完,晚上就收到流程结束的通知
1 回复 分享
发布于 02-03 20:46 海南

相关推荐

1. 请详细介绍你的校园版即时聊天室项目,说明项目中遇到的分布式并发、资源竞争问题及解决思路,并说明项目可支撑的在线人数、QPS等性能指标。2. 项目中用到了 Reactor 模型、线程池、Redis 发布订阅、MySQL 离线消息、一致性哈希负载均衡,请分别说明这些技术的实际落地方式与开发中遇到的坑点。3. 聊天室项目中,如何处理Redis 宕机导致的消息丢失问题?如何保证消息顺序一致性?4. 你在实习中负责安卓前端数据处理与底层 SDK 对接,工作中做过哪些性能优化?遇到过哪些性能瓶颈?5. 请说明 C++ 中指针与引用的区别,以及各自优先使用的场景。6. 请介绍 C++ 智能指针的种类、适用场景,并说明智能指针存在的开销与循环引用问题如何解决。7. 请说明野指针与悬空指针的区别,以及如何避免这两类问题。8. 你掌握哪些多线程调试方法?如何排查线程阻塞、死锁问题?9. 实际开发中遇到过哪些内存问题(内存泄漏、OOM、栈溢出等)?了解哪些内存检测工具,如何进行内存问题排查?10. 多线程环境下使用 STL 容器需要注意什么?用过哪些线程同步方式,有无无锁编程思路?11. 请详细说明 TCP 与 UDP 的区别,你的即时聊天室为什么选择 TCP 而非 UDP?12. 什么是 TCP 粘包问题?常见解决方法有哪些?你项目中是如何处理的?13. TCP 传输过程中出现网络抖动、丢包、延迟时,如何处理?拥塞控制大致机制是什么?14. TCP 是如何保证可靠传输的?超时重传、确认应答、滑动窗口分别起什么作用?15. 项目中如何实现多服务器跨节点通信?Nginx 负载均衡与一致性哈希分别如何使用?16. 请说明 vector / list / map / unordered_map 的底层实现、优缺点及适用场景。17. 你在项目中如何使用 STL 容器?请举例具体业务场景与选择依据。18. 如果要在内存中高频维护用户列表、群组列表,你会选择什么容器?为什么?19. 多线程环境下使用 vector、unordered_map 等容器需要注意什么?如何保证线程安全?20. 安卓 SDK 基于 C++ 开发,与 Java 层之间如何通信?是否了解 JNI?21. 你常用 C++ 语法标准是哪些?项目中用到哪些 C++11/14 特性?22. 简述主线程耗时操作优化思路,为什么不能在主线程做 heavy 计算或 IO?
查看22道真题和解析
点赞 评论 收藏
分享
03-19 10:36
山东大学 C++
经历了笔试加面试2小时极限拷打,人已麻首先是45分钟手撕:1、合并两个有序链表L1和L2,但稍微做了点变体,把L2合并到L1上,而且是在L1类内部函数做的,写起来稍微有点麻烦;2、寻找循环递增数组中的最小值,要求用时间复杂度尽可能小的方法;楼主刚开始用O(n)的简单写法,后来面试官提醒才想起来二分查找,并且被追问如果数组是严格递增的应该如何修改代码?3、手撕智能指针shard_ptr,背模板背的挺熟,但写起来稍微有点变体就会出毛病,只能说掌握的还是不够深刻面试:1、首先是让你讲解前面写的三道题的思路2、C++内存管理中堆栈的区别;3、malloc free 与 new delete的区别;4、在模板类的析构函数中,应该用delete还是free?5、左值引用和右值引用的区别;6、Android 的生命周期7、Android JNI开发中 java层的string数据如何传到C++层?涉及到的相关函数;8、Java层 string类型的编码?C++层的编码?C++层接收到的数据需要拷贝吗?项目:1、项目架构2、自研RPC架构是如何实现的3、客户端发送的数据,服务器如何知道这个数据是什么类型的?4、由于楼主项目是基于微服务架构的分模块系统,涉及异步多线程通信,还提问了在多个模块向缓冲队列放数据时需不需要加锁?应该怎么加锁?这一块儿我没怎么弄明白,得需要再好好研究一下;5、后台C++线程和java层主线程是如何通信的?这一块儿我也同样没弄明白,也是被狠狠拷打了总结下来,🐧并不太注重对八股的考察,移动客户端开发的难点(以Android JNI为例)应该主要在于java层和C++层如何通信、多线程间的通信机制,以及端云服务间如何通信
查看17道真题和解析
点赞 评论 收藏
分享
评论
8
15
分享

创作者周榜

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