После разговора с моим другом, который работает на amazon инженером-программистом, я дам вам несколько советов по практике алгоритмов/пробному собеседованию.

Шаг 1: Анализ (10 минут)

Пропустите часть о себе, сразу приступайте к кодированию.

  1. Прочитайте проблемы, заранее проясните любую путаницу (что такое ввод/вывод) и сформируйте высокоуровневую карту того, какую структуру данных/алгоритм применять.
  2. У проблемы может быть несколько решений, обязательно проанализируйте временную и пространственную сложность каждого алгоритма, который вы придумали, и подумайте о компромиссе.
  3. Расскажите о своем мыслительном процессе интервьюеру. Спросите у интервьюера, какую структуру данных реализовать

Шаг 2: Код (15 минут)

  1. Не забывайте о крайних случаях.
  2. На этом этапе действительно нечего добавить, продолжайте практиковать свои навыки кодирования.

Шаг 3. Последующие действия (15 минут)

  1. Когда вы закончите, вполне вероятно, что интервьюер задаст вам дополнительный вопрос. Перед собеседованием выработайте привычку активно искать дополнительный следующий шаг в любой алгоритмической проблеме. Например, если вас просят найти сумму двух чисел, спросите себя, можете ли вы также найти произведение. Эта привычка ставит вас на ноги, когда дело доходит до дополнительных вопросов.
  2. Объясните мыслительный процесс высокого уровня, если ваше время на исходе

Вопросы и ответы:

Что делать, если вы застряли на проблеме во время практики:

Это происходит все время. Не ищите ответ сразу! Боритесь не менее 10–15 минут. Попробуйте вспомнить похожие проблемы, с которыми вы сталкивались в прошлом. Если после этих усилий что-то не получается, найдите ответ и убедитесь, что вы его полностью понимаете. Наконец, поместите этот вопрос в свой «стек» отзывов и вернитесь к нему через несколько дней, как если бы он был новым.

Сколько задач мне нужно решить:

Если вы впервые программируете на LeetCode, постарайтесь написать как можно больше задач и убедитесь, что делаете их по тегам. Если ваша цель — получить супер хороший массив @, потренируйтесь решать все задачи под тегом «Массив». Да, ВСЕ.