这次tt总结

来源:互联网 发布:全国小龙虾消费数据 编辑:程序博客网 时间:2024/05/01 02:34

      简单说一下这次去tt面试的经历吧,经历完笔试当前晚上就收到通知让去参加面试,在一个酒店里。笔试的内容各科都有,操作系统、数据结果、算法之类的,天天写代码,做些乱七八糟的事,由于很久没看这些书了,很多以前感觉简单的都忘记了,打算这个暑假把这些基础补补,为下学期找工作做准备,虽然答得的不好,还是勉强过了笔试。晚上就简单看了下以前tt的面试题,也没看进去,就想睡了。

      第二天10点多起床,简单准备了一下简历(很久没参加面试了),中午吃了个午饭,就赶过去了。我的是4:30,不过还在公交车上时,同学就听到喊我名字了,那时还不到4点,看来面试速度挺快的。急急忙忙刚过去,问了一下才找到地方,发现酒店大堂和电梯处都是些学生模样面试的。电梯处有一个哥们问我是不是面试的,哪个学校的,开始还以为是公司在楼下的导引员呢,结果都是一样的,川大的。然后就一起上了电梯,然后赶快跑过去签到。看了会才搞明白,原来是叫名字,等了四五十分钟,发现很多自己学校的。很久没参加面试了,心里还是有些紧张。给了号码到楼上房间,发现里面有人正在面试,过了会面试官出来给了我一道题,让我先写在上面。

     题目就是“从链表中删除倒数第M个元素”,当时有点慌张,虽然不难但是有点无从下手,没有想到效率高的方法,并且很久没写链表了,都有点忘了咋写了,尤其是写在纸上,需要多多练习啊。我的思路是先计算链表的长度len,然后再从前往后遍历到第(len-m)个元素,删除之。这样效率确实不高,要遍历两次链表,当时真没想到好方法,郁闷。后来上网搜了下,发现ms曾经出过这样的面试题。主要思路就是定一个指针pCur指向链表头结点,定一个pPre指针,其next指针指向头结点,然后定义一个pPost指针,指向头结点,然后使节点pPost移动至第M个,然后三个指针同时向后移动,直至pPost节点移到最后一个节点,这是,pCur指向的节点即为要删除的节点。然后根据pPre和pPost删除节点即可。这样的复杂度为O(n)。

      过了一会面试官叫我进去,让我进去写,我进去之后就坐在桌子旁边写,感觉这么久还没有做出来,感觉没戏了,就匆匆写完给了他。他让我先等会,外边又有一哥们等着面试,面试官说先给他出道题让做着。让我简单介绍下自己,我就说了下名字,学校专业啥的。说的有不清楚又简单,现在想下应该主要说下自己的特长和经验,这次记住了,要多上网搜索下相关的经验。

    说完了之后,就给了我一道题,就是从大拇指数到小指,再从无名指数到大拇指,问下第500个数在哪个手指(当时有点蒙,不知道数手指干嘛),听完之后我就简单想了下,当时估计太紧张了,担心想的太久就没戏了,现在回想下有些时候不一定要快,但是要对。我说了一下是大拇指,我说正好500除以10又回来了,真是糊涂啊,开始就没听清楚他说的,导致更加紧张。又让我在纸上画了下,结果有说错了。紧张惹得祸啊,心里素质确实需要锻炼。回来后一想很简单,等差数列,我女朋友一想就出来了,比我还快。

     后来还有几道题:1、斗地主的洗牌算法(当时只想到用随机数,但是答得不全,存在问题,后来查了一下是用随机数交换)

2、在我们学校找我的名字,不用数据库,并且只知道姓名,咋样查找比较快(我当时说的是排序根据姓名查询应该比较快,他又说人很多维护排序表很麻烦,我说通过hash比较快。后来想了一下也没有好方法,用快排,然后折半不知道快不快,不过没查一次排一次序也麻烦了些。应该建立hash表要快一些吧。)

3、问我了不了解web、数据库、网络,我都说不太熟悉用的不过,主要是数据库网络平时用的不过,有些记不清了,真是郁闷啊,现在只会写代码,一定要狂补这些知识了)

4、后来问我咋样判断循环链表(我说遍历一遍链表,不知道有没有更好的方法)

5、最后问我了不了解设计模式,我说了解一点。就简单写了一个单件模式,虽然知道多线程的考虑,居然没有写上。还有就是为什么那么设计没有彻底理解,导致问我为什么那么设计,说的不太准确

    总结一下这次面试,主要就是基础知识太不扎实了,并且过度紧张,心里素质不高。还有就是问我问题时,回答的问题时,估计是说话太快,声音又不太,多次回答不了解,明显是太不自信了。以后要根据这些问题改进,更取提高,为了下学期招工作,努力,努力......