腾讯面试经验2

时间:2017年10月16日11:30面试。

地点:重庆万达艾美酒店。

信息:女,本科应届生,面试后台开发岗位。

 

  在深圳的面试已经全部结束了,偶然间听朋友说重庆、长沙等场地的面试还在进行中,只要修改面试地点,仍然有机会拿到面试机会。所以我抱着试一试的心态,在腾讯校招官网上修改面试地点为重庆。10月13日中午收到了腾讯的面试通知,面试时间是10月16日11:30,面试地点在重庆万达艾美酒店。

  收到短信通知的那一刻就已经有点紧张了,一开始我也很犹豫到底要不要跑回重庆去面试,电话里我爸说我既然那么喜欢腾讯,就应该抓住每一次机会去尝试,不看结果,至少我们经历过嘛。所以14日一大早就买上了15早上飞往重庆的机票。我也不断提醒自己,紧张只会影响发挥,就当自己是回重庆改善饮食、度度假的。抱着这种心态,一直到走进万达艾美酒店之前我都再没有任何的紧张感。当酒店正门在视野中出现的那一刻还是忍不住紧张,所以我努力使自己保持微笑,一有机会就跟身边的人闲聊,渐渐熟悉周围环境之后也就忘记紧张这个名词了。

  电梯里遇到两个小哥哥,两个都是面试产品经理的,其中一个也是跟我一样来自深圳,酒店服务员让我们来到4楼,一出电梯就看到一组二维放置的椅子,里面稀稀落落的坐了不少来面试的,他们全是霸面的,凡事有正式通知面试的同学直接被送到里面房间扫码签到等待。跟我带路的是腾讯的小哥哥,面带微笑询问我是面试什么岗位,我说后台,他脸上的表情很丰富,非常惊讶我作为一个女生来面后台!我说我是本科生,他的表情更加夸张了......惊讶转佩服,他估计是佩服我的勇气,说看好我并未我加油。

  签到后,里面房间的位置也就坐着一个同学在等待面试,我径直走到他旁边的位置坐下,主动跟他搭话,他是面试前端的研究生,一边跟我说着话一边不停地敲着键盘,看他很专心地在研究他的代码,我也就没再打扰了。静坐了一分钟左右,又进来一个男生,坐在我们后面的位置,主动向我们两个搭话,他是来复试后台的重庆大学研究生,旁边男生一听是后台,立马让我跟他好好交流,我也很识趣地移到后面男生的旁边坐下。这个男生很nice,得知我是本科生,看了看我的简历,然后向我分享了他的经历——他在本科毕业之后也向我一样来面试了腾讯,但是被拒,拖了一年后开始准备考研,考了两次之后成功考上了重庆大学的研究生,直到现在他自己手上已经有其他公司的offer,然后再来面试腾讯。言语之间已经感受到他十足的信心了。可能觉得这个时候的我很像当年的他,所以给了我很多建议。还没来得及互相留联系方式,他就被叫去面试了。他走后立马又来了一个复试后台的重庆邮电研究生,坐在我旁边,得知我是一面且是本科生,不再感兴趣,于是掏出手机开始看资料,一边看一边告诉我让我看看XXX,一面可能会被问到。不怕丢脸,讲真的,他说的那两个名词我都没听过......这也许就是本科生和三年研究生的差距吧!

  终于轮到我面试了,地点是7楼,走出等候室,仍然是刚刚的小哥哥给我带路,帮我刷卡按电梯,并一直夸赞和鼓励我,我苦笑一句说我自己也觉得很意外,而且我看过来面试的都是研究生,他很温柔地告诉我没关系,面试官对研究生的要求和本科生的要求是不一样的哦~最后送了我一个微笑和好运祝福后让我关上了电梯门。

  电梯到达7楼,做了一次深呼吸后,我面带微笑走进了726房间,面试房间的布局和我想象中的一样,面试官的状态也和我想象中的一样 —— 一副刚起床的状态!面试官坐在书桌的电脑前等我的到来,我在走向他的途中用余光扫到旁边床上被子是凌乱的,床边他的靴子东倒西歪并向外吐着袜子,床头柜上还有打开未吃完的薯片。面试官看起来没有很好相处,我会这么觉得,大概是因为他没有回应我的微笑吧。从进门开始我就介绍了我自己的名字,并一直面带微笑。

  面对着他坐下后,首先被要求做个简单的自我介绍,名字+大学+专业,然后说明我是深圳过来重庆面试的,他很惊讶我来自深圳,同时也很好奇,我原本以为他是知道我9月份在深圳已经面试过的,而且对于每个已经面试过的同学面试官都会写一份评语,我也以为他已经看过评语,看他的反应大概是什么都不知道,所以我做了一个详细的说明之后便接着我的自我介绍模版说下去。待我说完,他估计是看到了之前面试官对我的评语之类的,没有再问我简历上的内容,直奔主题——做题!一共做了三道题。

第一题  合并多个有序数组

  第一道题是算法设计题:有N个数组,每个数组有M个元素且呈升序,求这N个数组的并集。例如:第一个数组有{1,2,3},第二个数组有{2,3,5},则合并后为{1,2,3,5}。

(1)我首先想到的是牺牲空间节约时间的办法,申请一个超大的数组A,初始化为0,遍历这N和数组,将元素作为A数组的下标访问A数组并置1;N个数组访问结束之后,再遍历一次A数组,其中值为1的下标的集合就是合并后的结果。听我讲完,他首先问我时间复杂度和空间复杂度,时间复杂度是O(N*M),空间复杂度是元素的取值范围。面试官提示我本道题是在64位系统下实现,而我需要的空间大小为元素取值的范围,也就是说最多能达到2^64远大于1Gb,所以这个方法是不可行的。

(2)我知道我一直没有利用到“有序”这个关键词,所以我抓紧这关键词,首先想到的是二分查找:以两个数组A、B合并为例,以A数组为基准,遍历B数组的元素,利用二分查找,将B的元素在A中找到最适合的位置,

  • 若A中不存在且处于A数组下标为0的位置,则直接记录该B数组的元素;
  • 若A中不存在且处于A数组末尾,则返回整个A数组+该B数组元素;
  • 若A中存在且此处A的元素和该B数组的元素不等,则返回此处及其此处以前的A元素+该B数组的元素;
  • 若A中存在且此处A的元素和该B数组的元素想等,则返回此处及其此处以前的A元素。

  说完思路,他接着问我,那N个数组怎么合并呢,我回答的是递归拆分,直到只剩两个数组为止,然后再逐次往上合并。回答完递归后,我自己都觉得太过复杂了。他继续问了下时间和空间复杂度,两个数组合并的时间复杂度主要取决于二分查找的复杂度O(logM),总共要找M个关键字,所以两个数组合并的复杂度是O(MlogM),再加上N的数组的递归拆分大概就是O(N*MlogM)的复杂度了,空间复杂度为常数。能由“有序”关键词想到了二分查找,面试官也勉勉强强接受了。

(3)我看他的表情不太满意,于是我主动表现出对巧妙方法的兴趣与渴望,于是面试官就给了我一个提示:“就以你两个数组为例,你每次无非就是在确认一个数。”灵光一闪!我知道了!

  • 用两个指针指向这两个数组的头节点,指针内容进行比较,
  • 如果内容相等,则记录其中一个元素,两个指针同时向后移动一个位置;
  • 如果第一个小,记录该元素,该指针向后移动;
  • 如果第一个大,记录另一指针指向的元素,另一指针向后移动。

  那么N个呢?递归的话容易实现,但不一定是最好的,如果每个数组一个指针会不会空间太大呢?只有N个数组,只需要N个指针,N个指针同时进行比较,每次找最小的一个数记录(问题简化了,相当于在N个数中寻找最小的一个数)。显然N的指针更佳令人满意。那这N的指针如何进行比较?我先说的是快排的拆分函数(以一个数为基准,比该数小的在左边、大的在右边),而这个基准数是随机的,所以调用一次拆分函数,返回函数中基准值下标,如果下标大于1,再对下标的左边部分继续调用函数;如果下标小于等于1,直接返回下标为0的元素。这样的做法减少了递归次数,不必使得整个序列有序。但是这个做法还是不能让面试官满意。N个数中,只是找一个最小的数,我还能想到的是堆,但是我对于堆不熟悉,只知道当记录数很多的时候用堆最合适。我也是这样同跟面试官说的,最后再次问了时间和空间的复杂度,我理解的堆排序时间复杂度是O(nlogn),但是这个复杂度是将整个序列变得有序的复杂度,而我们只需要找一个最小的,所以我的回答是,若堆排序的时间复杂度是X,那么这种解法的时间复杂度是O(N*M*X),空间复杂度为常数。

第二题  回文数函数实现

  第二道题是写代码,让我写出回文数的代码实现,给了我一个函数的定义,让我实现该函数。当然我会故意问一位数的数字算不算回文数!这道题没什么难度,所以我不慌不忙地写,也把所有边界情况都考虑到位。写了一个最简单的代码:

 1 //-1:异常
 2 //0:不是回文数
 3 //1:是回文数
 4 #define N 100
 5 int Palindromic(int value)
 6 {
 7     int x = value, k = 0 ,start, end;
 8     int a[N] = {0};
 9     
10     //拆分数字,将每一位存放进一个数组
11     if(x==0)
12         return 1;
13     while(x!=0)
14     {
15         a[k++] = x%10;
16         x = x/10;
17     }
18     
19     //从两头开始比较
20     start = 0, end = k-1;
21     if(start > end)
22         return -1;//不可能发生
23     else if(start == end)
24         return 1;
25     else
26     {
27         while(start<end && a[start]==a[end])
28         {
29             start++;
30             end--;
31         }
32         if(start<end)
33             return 0;
34         return 1;
35     }
36 }
回文数

   后来仔细想想以前的代码,还有更简单不易错的代码:

 1 //0:不是回文数
 2 //1:是回文数
 3 int Palindromic2(int value)
 4 {
 5     int x = value;
 6     int remainder = 0;
 7     int reverse_value = 0;//反转数字初始化为0,使得value=0时函数也成立
 8     while(x!=0)
 9     {
10         remainder = x%10;
11         reverse_value = reverse_value*10 + remainder;
12         x = x/10;
13     }
14     
15     if(value == reverse_value)
16         return 1;
17         
18     return 0;
19 }
回文数(优化) 

第三题  服务器压力测试设计

  第三道题他说是设计题,让我设计一种方法来测试服务器的压力,听完他的题目说明,我是一脸萌比的,大概是问的“假设:服务器tps=100000,怎么测试服务器压力”,很尴尬的向他求助,能不能给点提示,他又说“假设一个线程tps=1000”,结合他的提示,我只能把与相关的知识全部说出来,如线程的通信方式:(1)管道(2)系统IPC(信号量、____、消息队列)(3)套接字Socket,其中漏了一个,因为这个问题毫无头绪,我已经有点着急了,接着继续说,要想达到100000的tps,肯定需要多个线程,我想用信号量来实现,例如我100个进程就能达到想要的tps的话,我给这些进程100个锁来实现。他忍不了,说用共享内存来实现多个进程的通信更快,我恍然大悟,哦!!我遗漏了共享内存......我急忙赞同他的说法,他又接着问我这多的线程要怎么管理呢?这...我只能认输不知道。他告诉我,需要用一个线程来管理其他多线程的并发操作。

  后来自己百度了下这个问题,原来是WeTest的测试大师http://wetest.qq.com/gaps/

  三个问题问完之后,对于面试结果,我心里还是有点B数的,面试官并没有走流程让我问他问题,说今天的面试就到此吧。我起身拿起包打算离开,但还是很像问他问题,所以我先问他我能否向他提一个问题,他同意之后,我问他我们这样的本科应届生有什么建议和意见吗?他还是很耐心的跟我讲了一些对应届本科生的建议,最后说我阅历太少,经验不够,基础功不扎实。我回应了几句,并向他表示了真心的感谢之后离开了房间。

  面试官的评价很到位,赤裸裸的现实,还是回校补补营养吧!不过这份经历还是值的,一个毫无经验的应届本科生同几个研究生来竞争同样的职位,虽然结果很明显,但还是非常感谢面试官给我这个面试机会,而且整个面试过程中还那么耐心的引导我!

 

  我的博客即将同步至腾讯云+社区,邀请大家一同入驻。

转载于:https://www.cnblogs.com/Christal-R/p/7691375.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简易有效Api接口防攻击策略

API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;是一些预先定义的函数&#xff0c;目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力&#xff0c;而又无需访问源码&#xff0c;或理解内部工作机制的细节。 简单…

被称为海淀妈妈四大神器之一的倾听者K3 硬件拆解

暑假期间发现很多博主都在推荐倾听者K3&#xff0c;被海淀妈妈们称为四大神器之一&#xff0c; 虽然暂没听说其他三大神器是什么&#xff0c;作为教育硬件爱好者还是决定先整个回来拆拆看。 在京东上搜到倾听者K3版本一共有三种颜色&#xff0c;分别是蓝色&#xff08;悟空蓝&…

dds设计信号发生器

高一 150206101 Dds数字信号发生器设计方案 DDS的工作原理框图如下 在微机内&#xff0c;若插入一块D/A转换卡&#xff0c;然后编制一段小程序&#xff0c;如连续进行加一运算到一定值&#xff0c;然后连续进行减一 运算回到原值&#xff0c;在反复运行该程序&#xff0c;则微机…

Maven--资源文件resource的问题

2019独角兽企业重金招聘Python工程师标准>>> Maven项目的目录有&#xff1a; src/java/main src/java/resource src/test/main src/test/resource 有的时候在resource目录下添加文件却不能加载出来&#xff0c;解决的办法是从把添加的资源文件添加到properties---&g…

以太网自动协商原理

自协商基本原理 自动协商模式是端口根据另一端设备的连接速度和双工模式&#xff0c;自动把它的速度调节到最高的公共水平&#xff0c;即线路两端能具有的最快速度和双工模式。 自协商功能允许一个网络设备能够将自己所支持的工作模式信息传达给网络上的对端&#xff0c;并接受…

mac与phy如何实现网络自适应

这两天修改网卡驱动以实现10/100/1000M自适应&#xff0c;因此研究了下phy芯片和emac驱动如何兼容10/100/1000M网络环境&#xff0c;记录在此。 网络中设备端数据链路层由mac芯片和phy芯片组成&#xff0c;phy芯片根据外部网络环境完成自动协商以及配置&#xff0c;驱动中根据p…

LVM逻辑卷详解及创建

我们先来看一下这张图片&#xff1a;PV: 底层的一个硬盘设备&#xff0c;可以是一个分区&#xff0c;也可能是一个RAID。我们可以把这个块设备创建成一个物理卷格式&#xff0c;即一个PV。VG: 将一个或多个PV提供的存储空间在一个更低的单位上划分成一个个独立的存储单元&#…

ITU-RBT.656视频标准接口

601是SDTV的数据结构 656是SDTV的interface 709是HDTV的数据结构 1120是HDTV的interface ITU-R BT.601是演播室数字电视编码参数标准&#xff0c;而ITU-R BT.656 则是ITU-R BT.601附件A中的数字接口标准&#xff0c; 用于主要数字视频设备(包括芯片)之间采用27Mhzs并口或243Mb…

C语言博客作业03--函数

1.本章学习总结 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本周学习了函数&#xff0c;其实&#xff0c;函数于之前学习的三大控制结构是密不可分的&#xff0c;而函数又有其特殊的地方&#xff0c;例如&#xff1a;函数的声明、函数的调用等等。我们之前编写…

Insta360:从软到硬,一年做出360°全景相机,中间填了多少坑?

摘要刘靖康在大学就开始创业。在大二的时候他曾经去腾讯实习&#xff0c;然后又去了“超级课程表”这个团队实习半年&#xff0c;2013 年 9 月回到南京创业&#xff0c;一开始的产品叫“名校直播”&#xff0c;是一款围绕院校名师讲座所做的视频直播产品。 不久前&#xff0c;一…

No.10 awk、变量、运算符、if多分支

awk、变量、运算符、if多分支 awk语法 ~ awk -F: {print $3,$4} /etc/passwd //-F指定:分隔符 默认以空格作为分隔符 ~ awk -F: {print &0,NF} //$0打印全部,NF有几段内容 ~ awk -F: {print $NF} /etc/passwd //$NF打印最后一段内容 ~ awk -F: {print NR} /etc/passwd…

排序: 选择排序

1. 基本原理 将待排序的元素分为已排序(初始为空)和未排序两组&#xff0c;依次将未排序的元素中值最小的元素放入已排序的组中。 直接选择排序简单直观&#xff0c;但性能略差&#xff1b;堆排序是一种较高效的选择排序方法&#xff0c;但实现起来略微复杂。 2. 直接选择排序 …

全景摄像技术大有可为

网络摄像机发展至今&#xff0c;已经基本满足了“高清”、“日夜监控”、“远距离监控”的需求&#xff0c;但是 随着细分市场的发展&#xff0c;超广角摄像机需求逐渐凸显出来。主要应用在会议室、办公室、大厅/大堂、商场、仓库、车间等大面积开阔的区域&#xff0c;解决原来…

java文件传输之文件编码和File类的使用

---恢复内容开始--- 我们知道&#xff0c;在用户端和服务端之间存在一个数据传输的问题&#xff0c;例如下载个电影、上传个照片、发一条讯息。在这里我们 就说一下文件的传输。 1.文件编码 相信大家小时候玩过积木&#xff08;没玩过也看过吧&#xff09;&#xff0c;看到一个…

arm-linux-gcc:Command not found的问题

标签&#xff1a; ubuntulinux 2015-05-15 10:47 680人阅读 评论(0) 收藏 举报 分类&#xff1a; Ubuntu&#xff08;23&#xff09; /etc/profile gcc&#xff08;9&#xff09; ARM汇编指令&#xff08;4&#xff09; 折腾了一天&#xff0c;终于搞定了。 ubuntu没有roo…

PASTE Splay

题目描述 我们用文本处理器来处理一个特殊的文本文件&#xff0c;该文本文件共有N行文本&#xff0c;每一行文本仅包含一个自然数&#xff0c;第一行为1、第二行为2&#xff0c;以此类推至N行为自然数N。   假设对该文本文件执行一次“剪切和粘贴”操作含义如下&#xff1a;…

Spring---基于Spring IOC的小程序

实现的功能以及各文件间的关系 IHelloMessage&#xff1a;一个接口&#xff0c;用于定义输出问候信息。 HelloWorld、HelloChina&#xff1a;接口的实现类。在这里表示人在不同的地方 Person&#xff1a;一个人物类&#xff0c;调用IHelloMessage接口&#xff0c;向用户输出问候…

MIPI DSI协议介绍

原文地址&#xff1a;http://blog.csdn .NET/qq160816/article/details/19555957 一、MIPI MIPI&#xff08;移动行业处理器接口&#xff09;是Mobile Industry Processor Interface的缩写。MIPI&#xff08;移动行业处理器接口&#xff09;是MIPI联盟发起的为移动应用处理器制…

130242014018-郑志良-第2次实验

一、实验目的 1&#xff0e;熟悉体系结构的风格的概念 2&#xff0e;理解和应用管道过滤器型的风格。 3、理解解释器的原理 4、理解编译器模型 二、实验环境 硬件&#xff1a; 软件&#xff1a;Python或任何一种自己喜欢的语言 三、实验内容 1、实现“四则运算”的简易翻译器。…

【BZOJ 4170】 4170: 极光 (CDQ分治)

4170: 极光 Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 121 Solved: 64Description "若是万一琪露诺&#xff08;俗称rhl&#xff09;进行攻击&#xff0c;什么都好&#xff0c;冷静地回答她的问题来吸引她。对方表现出兴趣的话&#xff0c;那就慢慢地反问。在她考…