Как подходить к каждому собеседованию по программированию независимо от темы

Это первая часть серии из четырех частей. Для тех, кто хочет забежать вперед, вот ссылка на весь цикл статей

Проверьте

Каждый вопрос на собеседовании следует начинать с этапа проверки. Потратив на это 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

Вход в полноэкранный режим Выход из полноэкранного режима

(P.S. Не стесняйтесь использовать сокращения для аксиом и предположений)

Во второй части мы рассмотрим самую трудную часть собеседования — разработку стратегии, которую вы будете использовать для решения проблемы.

Присоединяйтесь к сообществу

Hackpack.io — самое активное сообщество разработчиков, готовящихся к собеседованиям по программированию. Вы можете подать заявку на сайте!

Рассылка советов по прохождению собеседования Big Tech

Рамки большого технического собеседования часть 2

Big Tech Interview framework часть 3

Оцените статью
Procodings.ru
Добавить комментарий