面试经验
中国人民大学是我的重要目标,所以我在申请季准备期间总结了一下人大信息学院的往年面经,信息都来自互联网。
面试经验
机试
2019年题:
- 斐波那契数列,真真正正的简单题,随便写了一个记忆化递归就能AC了,几分钟搞定。
- 高精度进制转换,但是只需要210进制互转。
2018年题:
提供了48个数据,格式为 2018.06.23 Russia-England ,输入的为一个国家的名字,输入所有该国家的比赛时间及对手,我认为这个题主要数据的处理,十分耽误时间,其实考察的就是简单的字符串比较。
输入一个二位数组,内容是# *,输出一共有多少个*组成的邻居团体以及最大的一个邻居团体有多少个*(*的相邻的8个位置都算是他的邻居)格式大概如下
######*##*#
###*##****#
####***#**#
#****##***#
考察也就是DFS或者BFS算法。
笔试
2019年题:只有编程题。
用三种不同的循环语句实现strncpy函数。
二叉链表倒序输出,自己给出数据结构,但是规定不能有指向双亲的指针。写出完整程序。
读取一个文件,文件里面有一排数字,然后按照题目要求的排序方式排序并输出,需要写出完整程序。题目的排序方式:原:1 3 2 4 1 3 2 → 排后:1 1 3 3 2 2 4 。(就是把出现过的数字都放在一起,但是不改变出现的整体顺序。时间久远,印象中是这样的排序方式,如有错漏,欢迎小伙伴们指正)。第三题有一大堆小问题,包括分析算法的时空复杂度,数据量大的时候是否仍然可行,等等。
2018年题:概念题+编程题
笔试考的是编程语言,切记一定要将C、C++、JAVA看一遍,特别是三者有一些共有的问题。因为程序设计笔试占80分,所以一定要重视笔试,这直接决定了你会不会录取。
前面两道题是问答题,主要是编程语言的内容:
- static在C、C++、java内的使用场景和作用。
- 多态性在C++、Java内都有哪些体现,两种语言任选一种作答。
后面两道题是编程题,手写代码。
- 完全平方数 输出所有四位数,是某一个数的完全平方数,并且格式为aabb,前两位相等,后两位相等。
- 题目大意是给你一个文件的路径,该文件内是一篇英语文章,你需要读出该文件内的词频最高的前K个单词,具体要求有很多,比如不能使用STL(笔试题均不能使用STL),我记得有好多要求,但是我想不起来了,抱歉,最后还需要分析你的代码的时空复杂度。知道前K个单词后,若你知道单词在每个段落的分布,你该如何向读者推荐哪个段落。
总结来看,考察的是C语言的文件操作(这个考点连续考了两年,务必重视),字符串的操作,复杂度分析。
算法题是找出形式是aabb的完全平方数,算法要求只能有一重循环,不能有循环嵌套。这题可以用数学分析简化,或者先算完全平方数再判断aabb的方法。
设计题是计算一篇文章中做出现频率最高的前k个单词,要考虑无效词(an this that这种),还问根据结果怎么找出文章的代表段落。具体有有记不清楚了,有好几要求以及小问。我最后一点不太想做了,就简答的写了用字典树的做法以及用hashmap+数组维护前K个数的思想。不让使用STL。
面试
另外面试会问的3个英文问题一般有:自我介绍、介绍一下你的家乡或者你的学校。
2019年专硕面试:
英文群面:自由抢答式发言,但发过言后就不抢了,每人都要说话。话题都是关于计算机方面的开放式问题。Eg. In the era of big data, what do you think about the storage and transmission of data? 10个人,假设每个人每个话题只说2分钟内容,那每个话题就要20分钟,所以这一场直接花了40分钟,虽然平均下来自己说不了多少,但是神经还是紧绷的有没有…… 通过这一场其实很能看出同学们的实力,有的英文流利侃侃而谈,有的口语能力有待提高。
中文群面:按序号依次发言,先是自我介绍。静观各路大佬无形装b,表面笑嘻嘻,实则心戚戚……在10个大佬中做那个最吸引老师眼球的仔,并不是那么容易~ 自我介绍完毕了,也会有自由抢答式发言,我们组问到的问题是你觉得本科和研究生的课程有什么区别,以及你对这些课程的认识。都是开放式问题。
英文单面:自我介绍+简短英文问题,英文问题好像都是关于学校和生活的。整体大约3分钟。
中文单面:主要针对群面中你的发言提问(评委给每个同学发言都做了记录哦),每个老师都会问一些感兴趣的问题,涉及的比较全面,要对做过的竞赛和项目了如指掌才行。大约5分钟。
2019学硕面试:
英文群面:按序号依次发言,先是自我介绍,大佬们开始秀了,有位老哥那个英文背的贼溜(其实我觉着主要是说清楚,不要用太生僻的词)。然后就是,问问题,第一个问题:咳咳,同学你为啥选我们学校啊?(此时不舔更待何时....捂脸)。后面记不清楚了,有同学直博被问将一个科学家故事,他讲了李彦宏被泼水,(他说刚看完知乎,只记得这个,笑skr人.....),其他实在不记得喽。
中文单面:学硕是递简历,所以简历一定要做好,个人建议项目和科研占据简历一半的位置,越详细越好,这样才是你做的嘛。老师基本是捡着简历来问,此外问了我卷积神经网络的理解(菜鸡复习过,表面一本正经,内心笑开了花,再次捂脸)。好像没有听说问专业课。
2018直博面试
我报考的是直博,英语面试和综合面试是一批老师,硕士有部分是分开面试。英语面试最重要的还是自我介绍,自我介绍不要说废话,我就是犯了这个毛病,因为时间紧张,我刚说完自己的基本情况,就被打断,老师让我说一下项目和课程情况,所以基本情况过后,一定要准备一下自己的项目和课程的一些情况。除此之外可以准备一下家乡、学校的英语介绍,以防万一。
接下来,中文内容需要详细说一下自己的项目或者论文,尽量让自己掌握主动权,多说但是不要说废话,说自己的工作和收获,一定不要夸大,可能会被怼,一旦被怼就应该会凉。我遇到的还有专业问题,最最最最最重要的莫过于数据结构,数据结构一定要多复习几遍,对于重要的内容,一定要上手实现,这样也有助于机试。我被问到的是DFS、BFS的伪码实现。DFS是递归实现,BFS需要借助于队列实现。
考研复试
英语笔试,第一道题目是翻译,是与目前生物数据库技术等相关的内容,生词不太多,也不是很长。
谈谈为什么来人大,想在这里学些什么,以及研究生的计划。
第一道是线性表逆转,用链表存储,递归与非递归方法实现,平时都用非递归,这个递归的方法确实有点想不太到,另外还要实现链表的建立和空间释放。
第二道就是用非递归的方法求树高和一条最长路径(即结点序号),当时自己用的是先序遍历和栈实现的,注意continue在if中的使用就是之后的判断语句都不执行,又到循环开始进行下一次的循环,后面和别人讨论,发现层次遍历也是可以的,用一个数组专门存储树高,像根节点树高1,它的左右子树就树高2,这样用队列实现了层次遍历之后,树高也同样得到了,其中一条路径也可以相应得到,两道题一共一个半小时。