网站建设招标流程图免费刷推广链接的软件
3.15 一面(50min)
自我介绍+概念题
英文介绍(对着稿子说着说着发现截图掉了最后两段,草草收尾,逐渐紧张。。。)
介绍一下你的一个项目吧
面试官:我更希望听你从设计模式方面来讲你的项目,但你更多的是讲的算法相关的是吧,不过没关系
设计模式还有了解?
介绍一下死锁吧
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程
C++的虚函数了解吗?virtual?多态了解吗?
【此时心想,咋这么多概念题,,我以为上来微软就算法呢。。】
那问道数学题吧,小学时候我们学过,能被三整除的数字有一个性质,就是各位的和加起来能被三整除,为什么?能证明一下吗?(讲得比较好吧,面试官说很好,然后就发链接写代码了)
算法题(给了一个在线编辑的网页链接写代码)
1. 给一个字符串,仅由空格和单词组成,只要不是空格就是单词的一部分,把单词的顺序全部反转,并保留原来的两个单词之间的空格长度。比如:" Nice to meet you! \0" -> " you! meet to Nice \0"
(题很简单,肯定是O(n)解决。但是面试官考察的更多是在问能不能优化性能(常数级别),比如要求传入的是一个char *,直接在原串的空间上把答案存进去。)(然而我为了写的顺手用了一堆string)
(还好第一题手速比较快,面试官又给了道题,不然写代码部分就惨了)
原地反转,这也是一道老题了
2. 给两个数组表示rank的分数,比如[6, 3, 5], [8, 4, 6]这两个,每一个代表给每个下标的page的一个打分,但是最终结果不关心打分的分数,只关心这一组page里的排名大小是否相同。写一个函数判断这两个数组代表的排名是否相同。
(问了一下要求O(n)吗?面试官说那至少有一个排序的复杂度吧。直接不想神仙离散化操作,直接开数组sort。。两个数组分别存一下val和idx后sort,然后判断两个数组的idx是否相同)
(思路没问题,问能否优化?答只sort一个数组根据idx判断另一个序列的val是否递增的,面试官说对的)
感想
写完第二道题,面试官说后面也没有别的场次面试了,和我多聊一聊吧,然后就问了些情况之类的。
当时面完觉得算法题太简单了,没展示出什么优势,然后八股答得又比较一般,结果聊到最后还蛮愉快的,感觉面试官人很随和,顺利通过一面。
3.19 二面(45min)
介绍
用英文介绍一个你做的项目吧(当时现说的,有些磕磕绊绊)
CCF-CSP是什么?CCPC是什么?
算法题(共享屏幕写代码)
题面:给一个字符串,找到其中最长的回文子串(teams里发的文字描述,还有几点别的要求,能想到的最优复杂度,测试尽量完备的测试数据等)
Leetcode 第5题,中心扩散法, 这道题目应该好写。
感想
3.20 感谢信
结果很意料之中,但是内心很拧巴
祝大家面试好运,加油