📜  如何准备编码和技术面试?

📅  最后修改于: 2021-11-21 06:17:39             🧑  作者: Mango

我将首先简要介绍一下我自己。

我正在大诺伊达 NIET 攻读计算机科学工程技术学士学位,我是一名 3 年级学生。我目前在 SAPIO ANALYTIC 实习,担任数据库助理实习生。

我在 2-1(第 2 年第 1 学期)开始了竞争性编程。所以当我参加分级考试时,我有大约 1.5 年的竞争性编程经验。在竞争性编程方面拥有强大的背景确实可以节省您的精力,而其他人则继续阅读 GeeksforGeeks 来准备自己。

如何破解面试并找到一份体面的工作?

因此,这些组织将很快进入许多大学,并进行他们的入围测试。现在,我将讲得非常简短,切中要害。每个点都很重要。

基本技能集(BSS):

  1. 快速实施和调试(关于 codeforce 的练习题,hackerrank,参加比赛)
  2. 字符串匹配(重要、KMP、Z 算法等)
  3. 二分搜索、排序、STL(集合、映射、无序集合/映射、向量、排序)——非常非常有用
  4. 数据结构:(链表、堆栈、队列、BIT 有用、段树——在谷歌中询问)
  5. 动态规划:非常重要(中级问题,所有公司都问)
  6. 二叉树和 BST:超级重要! (所有公司都问这个)
  7. 关于图的 DFS/BFS 问题(Dijsktra 和流很少被问到)
  8. DP on Trees(是的,一个重要的话题)
  9. 贪婪,回溯:(重要,可能很棘手)
  10. 像 Prime Sieve 这样的数学概念:没那么重要
  11. Bitmask DP:有时在采访中被问到,稍后再介绍。

我认为这足以通过大多数招聘测试。虽然总有许多其他主题可以涵盖,但我建议不要被淹没并首先关注这些。准备好这些基础知识后,您应该继续学习其他数据结构和算法。了解更多和详细总是会让你更有趣和更棒。

许多招聘问题都是基于集合、地图的用法。根据它们做许多练习题。例如:看到这个,以及解决方案。

不做CP的人应该立即做以下事情:

  1. 需要提高执行、调试技巧。
  2. 学习上面提到的基本数据结构和算法集。
  3. 首先在 GeeksforGeeks 上完成数组类别下的所有 37 个问题。
  4. 转到 GeeksforGeeks 上的 DP。
  5. 对于集合和地图,我认为我上面提到的 CodeForces 上的问题会更好。
  6. 涵盖 GeeksForGeeks 的其他主题,如贪婪、DFS/BFS。
  7. 链表、二叉树及其遍历。 (重要的!)

这应该需要大约 2 周的时间。我不认为一直在做 CP 的人会面临 GeeksforGeeks 做链表、堆栈等的需要。但是,如果您快速浏览一下,那就太好了。

接下来是什么?

现在从面试开始并解决那里的问题,以便您熟悉 WA、AC 等判决,以及如何在 TLE 或 WA 的情况下做出回应。这将提高您的实现和调试技能。这将清楚地帮助您理解各种概念,如 DP、树等。

您还必须参与 CodeChef、CodeForces、Hackerrank 等网站上正在进行的挑战。一旦您在 1700 左右的 CF 上稳定蓝色,您就可以轻松通过招聘测试。然后你所要做的就是提高你的解释技巧,这样你也可以通过面试。

注意:速度很重要。很多时候,人们在 10-15 分钟内无法正确实现算法。这真的会让你失望。所以每天坚持练习!

招聘考试提示:

  1. 要快。不要一直等待找到解决方案。
  2. 如果遇到问题,请继续下一步。首先解决所有容易的问题。
  3. 最后,无论多么复杂,总是提交最差的蛮力解决方案。是的!测试用例很弱,你得到了相当高的分数。
  4. 您也必须熟悉涉及组合、排列和字符串功能的Python内置函数。它可以证明是非常有益的😉
  5. 这个提示更多的是个人经验。在一次测试中,我只得到了 25 分。我很快意识到 for 循环条件不正确,我只是打印了 0。当我纠正它时,我得到了 75 分。是的!所以我必须基本上看到,如果我在某些测试用例中获得 WA,我需要在那里打印 0。最后,我对变量的值(数组的大小,数组的第一个元素)使用二进制搜索来识别这些测试用例,并简单地打印 0。基本上我所做的是使用无限 while 循环,并带有一些条件,例如 100

面试小贴士:

  1. 要谦虚。不要给人一丝过度自信或傲慢的感觉。
  2. 永不放弃。如果所问的问题乍一看似乎很难,请不要失去信心。查看给出的内容,您必须找到的内容,并尝试为小型测试用例执行此操作。那么也许你会找到一个模式。
  3. 想你所想就说吧。不要一直在纸上乱写。让面试官知道你是如何处理这个问题的。
  4. 如果问题看起来很困难,请给出蛮力解决方案及其复杂性。然后尝试优化它,也许使用动态规划或一些贪婪的解决方案。

不要以为你没有时间😀

刚开始做!随时写下您的疑问,我随时为您提供帮助🙂