中大厂面试,应该怎么回答一道算法题
本文经授权转自公众号 帅地玩编程(ID:di201805)
如若转载请联系原公众号
现在互联网中大厂对算法题的考察是越来越多了,最近也有一些学员问我应该怎么去回答的这么题。比如我应该是先说思路,再来写代码,还是说我直接写代码?比如我如果不懂的话,是要直接说不懂呢,还是说主动叫面试官提示我一下呢?又比如说我应该是要直接给出最优解呢,还是说先给出一个次优解,然后等待面试官提问,我再给出更好的解法呢?....
相信其他人可能也会有这方面的疑问,所以呢我就做一个简单的一个回答。
首先在面试的时候,面试的时间是有限的,特别是写算法题部分,特别费时间,所以我们在做题的时候,最好可以先跟面试官讲一下我们的思路。这样可以让面试官确认你确实是会的,你再写下来给他看。因为有时候你会和你能不能写出代码是两回事。但是呢你要至少先证明一下,你可能是会的,这样子的话也不会说浪费时间。
就千万不要你不会,但是你又在那里硬硬撑着。
如果你确实不会的话,那其实分两种情况啊,一种是你完全不会,就一点思路也没有,那你就直接说不会了,就不要浪费时间了。
还有另外一种就是你觉得你有可能是会的,只是说你可能还缺乏一点思路,没有想通,那你可以问一下面试官能否提供一下思路。一般来说面试官可能是愿意给你提供思路的,当然,即使面试官不愿意给你提供提供思路,那也问题不大,问了又不会减分,是吧。
第二的话就是我们应该直接给出最优解,还是说我们给出次优解呢?
首先我认为如果你懂最优解,就是直接给出最优解就可以了。就不用等着面试官来一点点问你了,万一面试忘记不问你了呢?所以你就给出一个最优解就可以了。
然后如果你给了最优解之后,如果你还掌握了其他的一个方法,比如说除了这个最优得知,其实还有一个更好的方法,但是方法非常非常非常的复杂,而且代码比较复杂,那如果你懂的话,你也可以跟面试官说。
最后还有一个很重要的就是我们在做一道算法题的时候,你一定要先和面试官问好边界条件。除非是这道算法题它已经描述的很清楚了,把各种边界条件都说清楚了,如果没有描述的很清楚,那你一定要问好别人边界条件,比如说它的数据量是多大的,又比如说会不会出现一些特殊的情况?
反正写代码之前一定要问好,因为如果有些特殊的情况比较多的话,你可能需要做很多特殊的处理,但是呢这些处理可能处理起来特别麻烦,那你肯定就最好先咨询一下。当然,如果处理起来不是特别麻烦,那你就直接处理了。