腾讯引力计划(c++后台开发实习)(天美事业群)凉经

2021-04-08 下午16:30

腾讯引力计划(c++后台开发实习)(天美事业群)

我很诧异居然没有笔试

1.        快速排序的时间复杂度为什么最快只能到O(NlogN)?

2.        输入的都是整数(可以理解成都是uint32),在这个前提下能不能做到比快速排序时间复杂度更快(能不能比ONlogN)更快)?

我答的是不能,面试官要求证明一下,我说不会

3.        堆排序和归并排序的时间复杂度为什么是ONlogN)?

4. 10000个数找出最大的10个,时间复杂度是多少?该怎么做?

5. QQ号码是32位整数(uint32),(大概40多亿),想要实现一个功能,就是判别某个号码是在线还是离线,存储所有QQ号的状态,要用到多大内存(多少个字节)?

说出是怎么计算的也可以(即计算表达式)?

6.        不引用第三方库,自己实现一个位图,打算怎么写这个代码,变量的定义是怎么写的?

我说定义一个vector里面存放int型(应该是错的)

7. Int整型占多少个字节?(我说4个字节)他又问所有机器上都是4个字节吗?(他告诉我可以不一样,跟机器的字长有关系)他又问有没有办法,让你定义的东西在所有机器上看起来都是相同的长度?

8. STL里的map是不是哈希表?

9. STL里有没有哈希表?(unordered_map

10. unordered_map是怎么解决哈希冲突的?(我答开方地址法和链表法)

他又问链表法如果链表过长该怎么优化?

11.    一个main函数,只有两行

Printf(“%d”,1,2,3);

Return 0;

问打印输出结果是多少?

如果printf中只有%d,那么你觉得编译运行的结果是什么?(我答的会报错)

他又问:编译时报错,还是运行时报错?(我答的是编译)

然后就结束了,过了一会去腾讯校招网站上看:您的流程已结束。

又是凉凉的一天,作为非科班转行c++开发真的是太难了,目前BAT已经凉完了,华为也凉了,我真的太难了,哎,继续努力吧!

#面经##腾讯##实习##C++工程师#
全部评论
链表过长只能加大散列表了吧?
点赞 回复 分享
发布于 2021-04-08 21:13
没问项目经历吗
点赞 回复 分享
发布于 2021-04-08 22:15
不要怕,楼主。希望我的面经可以帮助到你。
点赞 回复 分享
发布于 2021-04-08 22:48
unorderedmap有规定如何实现吗
点赞 回复 分享
发布于 2021-04-09 01:17
啊这。。。是引力计划?0.0.
点赞 回复 分享
发布于 2021-04-09 08:31
打印结果1,不报错,最多有个警告,参数过多
点赞 回复 分享
发布于 2021-04-09 15:21
个人想法: 1.想想二叉树 每次都把一个数放在合适的位置 然后两边分成左右子树往下走 2.计数排序在数据稠密可以做到o(n)的排序 优化冒泡排已经有序的也是o(n) 选择排序怎么样都是n方 直接插入最好也是o(n) 希尔排序普遍在n的1.3次方左右(最好忘了) 然后堆排 快排 归并这几个我没考虑最好情况(快排排有序的和大量重复数据时候的时候特慢)题目说的都是整数没有没有别的信息让我判断不了(还是太菜了) 3.二叉树 4.堆排序的TOPK问题 5.整数就是十进制的吧 这样的话longlong肯定存不下 应该找到第一个大于10点33次方-1的数字 然后乘以用户个数(这思路感觉太正常了 让我想到了c语言的联合体公用一块内存)这题不太懂 6.位图是啥 7.这个肯定啊 32位和64位的long就不同(c语言的 让所有定义的东西一个大小这个应该可以做到 但是我不会 8.9.10.c++的还没学 11.不会报错的……这个学校经常搞这样的出来 警告就不知道了 肯定会打印1 今年刚转专业 很多东西还不太会 希望大佬斧正
点赞 回复 分享
发布于 2021-11-14 17:03

相关推荐

会飞的猿:我看你想进大厂,我给你总结一下学习路线吧,java语言方面常规八股要熟,那些java的集合,重点背hashmap八股吧,jvm类加载机制,运行时分区,垃圾回收算法,垃圾回收器CMS、G1这些,各种乐观锁悲观锁,线程安全,threadlocal这些。在进阶一些的比如jvm参数,内存溢出泄漏排查,jvm调优。我这里说的只是冰山一角,详细八股可以去网上找,这不用去买,都免费资源。mysql、redis可以去看小林coding,我看你简历上写了,你一定要熟,什么底层b+树、索引结构、innodb、mvcc、undo log、redo log、行级锁表级锁,这些东西高频出现,如果面试官问我这些我都能笑出来。消息队列rabbitmq也好kafka也好,学一种就行,什么分区啊副本啊确认机制啊怎么保证不重复消费、怎么保证消息不丢失这些基本的一定要会,进阶一点的比如LEO、高水位线、kafka和rocketmq底层零拷贝的区别等等。计算机网络和操作系统既然你是科班应该理解起来问题不大,去看小林coding这两块吧,深度够了。spring boot的八股好好看看吧,一般字节腾讯不这么问,其他的java大厂挺爱问的,什么循环依赖啥的去网上看看。数据结构的话科班应该问题不大,多去力扣集中突击刷题吧。项目的话其实说白了还是结合八股来,想一想你写的这些技术会给你挖什么坑。除此之外,还有场景题、rpc、设计模式、linux命令、ddd等。不会的就别往简历上写了,虽然技术栈很多的话好看些,但背起来确实累。总结一下,多去实习吧,多跳槽,直到跳到一个不错的中厂做跳板,这是一条可行的进大厂的路线。另外,只想找个小厂的工作的话,没必要全都照这些准备,太累了,重点放在框架的使用和一些基础八股吧。大致路线就这样,没啥太多难度,就是量大,你能达到什么高度取决于你对自己多狠,祝好。
点赞 评论 收藏
分享
评论
5
43
分享

创作者周榜

更多
牛客网
牛客企业服务