许多技术面试轮次都集中在编码问题上。你会收到一支笔和一张纸,并要求你提出一个算法来解决问题,然后是代码。这是关于您应该如何回答此类问题的一般指南。
1、明确问题陈述:
首先要做的是澄清问题陈述。在尝试解决问题之前清楚地了解问题很重要。
例如:我在一次采访中被问到:一枚硬币被抛三遍,出现三个反面的概率是多少。
很多学生回答了 1/8,只是因为他们没有提出正确的问题而无法进入下一轮。
在不知道硬币是否有偏见的情况下,您如何回答这个问题?提出正确的问题至关重要。
2. 约束
一旦您清楚问题陈述,您需要询问是否有任何需要遵守的特定限制。
3. 观察
任何问题都有一些与之相关的特定特殊行为。您可以尝试一些示例并列出您的所有观察结果。请记住,您需要明确地告诉面试官您的所有观察结果。
4.方法:你认为是什么?
这是整个面试过程中最关键的部分。如果你做对了这部分,你很可能会通过这一轮。是什么让您认为您需要通过动态编程或回溯或任何其他算法来解决问题。面试官需要知道为什么你拒绝了某种解决问题的方法而选择了另一种方法。尝试将您研究过的各种概念联系起来,然后慢慢开始排除它们。
如果您打算使用数据结构来解决问题,请说明您选择这样做的原因。如果您遇到困难,请尝试使用蛮力方法。这将解决大多数问题。一旦你完成了缩小方法的范围并且你认为你可能有一个解决方案,请与面试官讨论。如果面试官提出了一些不同的建议,请优雅地接受它并开始沿着这些思路思考。不要拘泥于你的方法。
5. 边缘案例和反例
一旦确定了特定的解决方案,请确保检查所有边缘情况的方法。
6. 编写代码:
确保:
一种。您的代码是可读的。
湾您在代码中指定注释
C。在将代码展示给面试官之前,先用一些示例试运行你的代码。
考虑到这六件事,我很确定你会在编码面试中取得成功。但是,如果您不熟悉数据结构和算法,这些建议将不起作用。所以,在 Geeksforgeeks 上解决问题,努力工作,你就会成为你梦想中的公司。