非科班人员上岸了。感谢shopee。(面经分享)
本人本科物理专业。研究生到加拿大读了一年计算机的研究生。
从六月份开始陆续投简历,笔试。学期末忙成狗,还得找工作。
陆陆续续投了30多家公司。有笔试和面试的一共15家。其中有面试的有shopee,网易互娱,快手,bigo,携程和阿里。
网易刚刚结束二面,现在还在等结果。携程面完hr面一直没消息,其他都是一面。
今天终于收到shopee的意向书,也算为秋招画上半个句号吧。一下分享一下面经
一面:
一面是一个挺严肃的面试官。具体问了什么忘记了,无外乎计算机网络,数据库,操作系统,数据结构的问题。
问了两道编程题:
1.不使用局部变量,实现strlen函数。
答:这个问题用递归实现即可。一直往下找直到遇到'\0'。然后用当前地址减去首地址就可以了。
2.判断两个链表是否相交
答:判断最后一个节点是否相等。或者先计算两个链表的长度差,然后让长的链表先走长度差,之后两个一起走。如果相交,则会走到相同的节点。
二面:
二面首先聊了一下项目。然后问了诸如知不知道etag,有没了解过Django原理等问题。
接着给出一个递归函数,让计算时间复杂度。式子忘记了,总之是阶乘的关系。接着问什么情况下函数计算出错。这种无外乎两种情况:1.变量溢出。2.栈溢出。
最后问了一个问题。数组里面有一个数出现数组一半以上。找出这个数。如果没有返回-1。
答:三个方法:1.map统计出现次数。
2.排序,取中间的元素,计算出现的次数。
3.定义count=1和now=数组第一个元素,向后找。如果当前元素跟now相等,count++,否则count--。count等于0,now等于当前位置的元素。最后得到的now统计出现次数即可。
这个问题我给出第三个方法,面试官说我错了。举了几个例子,发现都能通过,他默默的看了十分钟,就说以后有空再看就过去了。。
现在就看互娱的了。但是更想留在深圳。不管怎么说,有offer过中秋,太开心了。