头条面试,一道算法题挂了,虽然做出来了ORZ
昨天头条一面,面试官是个帅帅的小哥。
上来表示还没看完我的简历,能不能给他一些时间把简历看完……
我:额……好
然后让我介绍一下自己,我就简单说了一下自己的项目(主要就是驱动啊,网管,web前后端啊之类的)
讲完之后他问了一些项目的问题,然后说我们做一道编程题吧。
就是给一个字符串,得到它字典序最大的子序列。(他的表述方式是,删除一些字符,使得剩下的字符构成的字符串字典序是最大的)
我一听就觉得自己要凉……因为我对字典序这个概念的把握不是很准确……
然后我就问了一下字典序的具体概念,面试官表示这个东西应该很常用呀,我:emmm……
后来举了几个例子验证了一下内心的猜想。
然后很快得到O(n2)的解法:找到最大的字符,切掉它前面的字符串,然后在剩下的继续找最大的,切掉之间的,直到找完。
显然面试官对这个复杂度是不满意的,我也有心理预期,明显这是最暴力的算法。
后来说了几个比较扯淡的方案,自己都否掉了(嘴巴太快,也是无语
然后用桶给了一个O(N)空间,O(N)时间的算法,不过与面试官的心理预设是不太相符的,还让我给他说明了一下这个算法为啥是对的……
完了他还想让我优化,后来看了一下时间,说你先把这个代码写出来吧。
我就手撕出来了代码……急匆匆就交给他了,然后发现有个边界条件没有考虑,还有几处笔误……囧。
后来回了等待区,过了一会收到了HR的通知说挂了。
emmm……
感觉凉凉的呀,以前都觉得字符串的题目很烦,不愿意练,结果一面直接打脸……还是要多学习一个ORZ还有就是虽然说要保持跟面试官的交流,但是方案还是要自己先过一遍再说出来,免得大家都尴尬……
#实习##春招##面经#