我将首先简要介绍一下我自己。
我正在大诺伊达 NIET 攻读计算机科学工程技术学士学位,我是一名 3 年级学生。我目前在 SAPIO ANALYTIC 实习,担任数据库助理实习生。
我在 2-1(第 2 年第 1 学期)开始了竞争性编程。所以当我参加分级考试时,我有大约 1.5 年的竞争性编程经验。在竞争性编程方面拥有强大的背景确实可以节省您的精力,而其他人则继续阅读 GeeksforGeeks 来准备自己。
如何破解面试并找到一份体面的工作?
因此,这些组织将很快进入许多大学,并进行他们的入围测试。现在,我将讲得非常简短,切中要害。每个点都很重要。
基本技能集(BSS):
- 快速实施和调试(关于 codeforce 的练习题,hackerrank,参加比赛)
- 字符串匹配(重要、KMP、Z 算法等)
- 二分搜索、排序、STL(集合、映射、无序集合/映射、向量、排序)——非常非常有用
- 数据结构:(链表、堆栈、队列、BIT 有用、段树——在谷歌中询问)
- 动态规划:非常重要(中级问题,所有公司都问)
- 二叉树和 BST:超级重要! (所有公司都问这个)
- 关于图的 DFS/BFS 问题(Dijsktra 和流很少被问到)
- DP on Trees(是的,一个重要的话题)
- 贪婪,回溯:(重要,可能很棘手)
- 像 Prime Sieve 这样的数学概念:没那么重要
- Bitmask DP:有时在采访中被问到,稍后再介绍。
我认为这足以通过大多数招聘测试。虽然总有许多其他主题可以涵盖,但我建议不要被淹没并首先关注这些。准备好这些基础知识后,您应该继续学习其他数据结构和算法。了解更多和详细总是会让你更有趣和更棒。
许多招聘问题都是基于集合、地图的用法。根据它们做许多练习题。例如:看到这个,以及解决方案。
不做CP的人应该立即做以下事情:
- 需要提高执行、调试技巧。
- 学习上面提到的基本数据结构和算法集。
- 首先在 GeeksforGeeks 上完成数组类别下的所有 37 个问题。
- 转到 GeeksforGeeks 上的 DP。
- 对于集合和地图,我认为我上面提到的 CodeForces 上的问题会更好。
- 涵盖 GeeksForGeeks 的其他主题,如贪婪、DFS/BFS。
- 链表、二叉树及其遍历。 (重要的!)
这应该需要大约 2 周的时间。我不认为一直在做 CP 的人会面临 GeeksforGeeks 做链表、堆栈等的需要。但是,如果您快速浏览一下,那就太好了。
接下来是什么?
现在从面试开始并解决那里的问题,以便您熟悉 WA、AC 等判决,以及如何在 TLE 或 WA 的情况下做出回应。这将提高您的实现和调试技能。这将清楚地帮助您理解各种概念,如 DP、树等。
您还必须参与 CodeChef、CodeForces、Hackerrank 等网站上正在进行的挑战。一旦您在 1700 左右的 CF 上稳定蓝色,您就可以轻松通过招聘测试。然后你所要做的就是提高你的解释技巧,这样你也可以通过面试。
注意:速度很重要。很多时候,人们在 10-15 分钟内无法正确实现算法。这真的会让你失望。所以每天坚持练习!
招聘考试提示:
- 要快。不要一直等待找到解决方案。
- 如果遇到问题,请继续下一步。首先解决所有容易的问题。
- 最后,无论多么复杂,总是提交最差的蛮力解决方案。是的!测试用例很弱,你得到了相当高的分数。
- 您也必须熟悉涉及组合、排列和字符串功能的Python内置函数。它可以证明是非常有益的😉
- 这个提示更多的是个人经验。在一次测试中,我只得到了 25 分。我很快意识到 for 循环条件不正确,我只是打印了 0。当我纠正它时,我得到了 75 分。是的!所以我必须基本上看到,如果我在某些测试用例中获得 WA,我需要在那里打印 0。最后,我对变量的值(数组的大小,数组的第一个元素)使用二进制搜索来识别这些测试用例,并简单地打印 0。基本上我所做的是使用无限 while 循环,并带有一些条件,例如 100
面试小贴士:
- 要谦虚。不要给人一丝过度自信或傲慢的感觉。
- 永不放弃。如果所问的问题乍一看似乎很难,请不要失去信心。查看给出的内容,您必须找到的内容,并尝试为小型测试用例执行此操作。那么也许你会找到一个模式。
- 想你所想就说吧。不要一直在纸上乱写。让面试官知道你是如何处理这个问题的。
- 如果问题看起来很困难,请给出蛮力解决方案及其复杂性。然后尝试优化它,也许使用动态规划或一些贪婪的解决方案。
不要以为你没有时间😀
刚开始做!随时写下您的疑问,我随时为您提供帮助🙂