这是一个四部分系列的第一部分。对于那些想要跳过的人,这里是整个框架的链接
检查
对于每一个面试问题,您都应该从检查步骤开始。在这里花 5 分钟向面试官展示你在深入研究之前批判性地思考问题。它也为你争取时间来提出适当的解决方案。
检查部分的每一步都有一些应该写在黑板上的东西。下面我们将介绍每个步骤并提供一个示例。
我是否明确说明了输入是什么?
函数的输入是什么?那里有多少?他们的类型是什么?每个输入代表什么?
例子
对于具有一个字符串数组和一个整数输入的问题:
Input: n(arr<str>), k(int)
我是否澄清了所需的输出是什么?
该函数的预期输出是什么?它的类型是什么?
例子
对于以布尔值作为输出的问题:
Output: bool
我是否构建了一个可以手动解决的简单示例?
创建一个小而简单的问题示例并手动解决。
例子
对于想知道n
中的任何值是否出现超过k
次的问题:
Example: input: n = ["a","b","a","c","a"], k = 2 output: true
我写出了所有的公理吗?
有时,问题的约束中隐藏着关键信息。询问有关输入及其界限的问题。
例子:
提出以下问题:“字符串可以是多字符吗?”可以为您提供问题的关键信息。
Axiom: Strings in the array cannot be multi-character
我写出并得出所有明智的假设吗?
写出你的假设可以帮助你保持你的代码更干净。如果您遇到困难,您还可以使用假设来缩小问题范围。
例子:
假设你的输入变量是有意义的总是好的
Assumption: k will always be a positive integer
最后
而已!在这一点上,您的创造力将源源不断,您将对问题有一个高层次的把握,您将能够识别任何明显的问题!您现在已准备好继续创建解决问题的有效策略。
请记住,您应该将其写在白板的一侧。
白板上的示例输出
Input: n(arr<str>), k(int) Output: bool Example: input: n = ["a","b","a","c","a"], k = 2 output: true Axiom: Strings in the array cannot be multi-character Assumption: k will always be a positive integer
( PS可以随意使用公理和假设的简写)
在第 2 部分中,我们将看看面试中最难的部分,实际上是想出解决问题的策略。
加入社区
Hackpack.io是学习编程面试的最活跃的开发者社区。您可以在网站上申请!
原文: https://dev.to/dannyhabibs/how-to-approach-every-programming-interview-regardless-of-the-topic-30n5