• 为什么面试程序员都如此看重算法?
  • 发布于 2个月前
  • 200 热度
    0 评论
  • 榴莲王
  • 0 粉丝 14 篇博客
  •   
一次经历

我之前面试过很多人,比如问到最小栈的题的时候,有些人直接能够给出用索引的方法,但是我问他为什么要存索引而不直接存最小值,他答不出来。这种人很难过我的面试,他虽然能给出答案,但是并不知道为什么,我认为他没有深入思考过,只是记住了这个答案。我倒是更希望找到那种从零开始一点点分析,一点点优化,每次优化都是有理有据的人。能够有清晰的思考过程。这种人无论是交流起来还是今后共事,都会感觉非常棒。

为什么面试现场如此强调算法效率?

有人说面试现场总是优化优化再优化,优化得这么好有用吗?现在硬件这么发达,搞一个o(n2)的算法又有什么关系呢?这里要注意几点,面试现场不是工作现场,面试是你和其他候选人在竞争。如果别人给出的算法效率更高,也能解释清楚,毫无疑问我会选别人。所谓面试造火箭,工作拧螺丝。给你一道造火箭的面试题,不是真要你造火箭,而是要看当你接受到这个任务的时候,你能完成多少,能想到多少方法,能有多少思路。至于火箭最后有没有飞起来,并不是我最关心的。

总结

说到这里大家应该明白了吧?面试官真正想看到的是完整的思维过程,灵活运用数据结构和算法的能力,以及多种思路。

1.面试官想要有思考力的人,而非只有记忆力的人。
2.面试官想要思维过程,而非一个最终结果。
3.面试官想要多种解法并对比优劣,而非一个所谓标准的最好解法。

我在面试别人的时候经常问的三个问题:
1.为什么要这样做?
2.这样做的时间和空间是多少?
3.还有没有别的方法?

如果你在做题的时候能经常问自己这三个问题,到面试的时候一定不会慌。

用户评论