许多技术面试回合都将重点放在编码问题上。向您展示了一支笔和纸,并要求您提出一种算法来解决问题,然后提供代码。这是有关如何回答此类问题的一般指南。
1.阐明问题陈述:
首先要做的是澄清问题陈述。在尝试解决问题之前,必须清楚地了解问题,这一点很重要。
例如:在一次采访中有人问我:一枚硬币扔了3次后,得到3条尾巴的概率是多少?
很多学生仅回答了1/8,就因为没有提出正确的问题而无法进入下一轮。
在不知道硬币是否偏斜的情况下,如何回答这个问题?您提出正确的问题至关重要。
2.约束
弄清问题陈述后,您需要询问是否需要遵守任何特定的约束条件。
3.观察
任何问题都有其特定的特定行为。您可以尝试一些示例并列出所有观察结果。请记住,您需要明确告知面试官您的所有观察结果。
4.方法:您在什么方面思考?
这是整个面试过程中最关键的部分。如果您正确地掌握了这一部分,那么您很有可能会进入下一轮。是什么使您认为需要通过动态编程或回溯或其他任何算法来解决问题。面试官需要知道您为什么拒绝采用某种解决问题的方法而选择另一种方法。尝试将您研究过的各种概念联系起来,然后慢慢开始排除它们。
如果您打算使用数据结构来解决问题,请指定选择这样做的原因。如果卡住,请尝试蛮力方法。这将解决大多数问题。一旦缩小了方法的范围,并且您认为可能有解决方案,请与面试官讨论。如果面试官提出不同的建议,请优雅地接受它,然后开始按照这些思路进行思考。不要拘泥于您的方法。
5.边缘案例和反例
确定特定解决方案后,请确保针对所有极端情况检查出自己的方法。
6.编写代码:
确保:
一种。您的代码是可读的。
b。您在代码中指定注释
C。在将其展示给面试官之前,请先通过一些示例来尝试运行您的代码。
考虑到这六点,我很确定您会参加编码面试。但是,如果您不熟悉数据结构和算法,那么这些建议将不起作用。因此,解决Geeksforgeeks上的问题,努力工作,您将成为自己梦想中的公司。