Потренироваться проходить собеседования: [ Ссылка ]
Курсы по программированию: [ Ссылка ]
Mock-собеседование от Team Lead из Яндекс алгоритмической секции на платформе it-interview.io. Потренируйтесь и вы проходить собеседования с разработчиками из ведущих компаний и получите подробный отзыв о том, на какую зарплату и грейд вы можете расчитывать, или над чем вам еще стоит поработать!
YouTube канал Владимира: [ Ссылка ]
LinkedIn Владислава: [ Ссылка ]
Таймкоды:
00:00 - Знакомство
00:07 - Обсуждение решения первой задачи
04:05 - Оценка сложности решения первой задачи
06:13 - Реализация решения первой задачи
12:17 - Тестирование решения первой задачи
17:08 - Обсуждение решения второй задачи
25:07- Оценка сложности решения второй задачи
26:54 - Реализация решения второй задачи
30:55 - Тестирование решения второй задачи
35:11 - Отзыв о собеседовании
[[ Отзыв о кандидате ]]
Рекомендовать этого человека на следующий этап? ДА
Каковы были его технические навыки? 4/5
Каковы были его способности решать проблемы? 5/5
Каковы были его коммуникативные способности? 5/5
За время собеседования решили две задачи Merge Intervals и Longest Substring Without Repeating Characters. Кандидат отлично умеет придумывать решения для задач, после чего неплохо реализует их (допускает немного багов, которые сам затем успешно находит). Код пишет чистый и понятный, с его языком знаком отлично (код писал быстро на языке Go - никаких трудностей не возникало). Оценивать сложность решения задач умеет, но не уверенно, так как допускает небольшие ошибки в оценках. Тестировать код умеет, но учитывает не все тест кейсы. По общению приятный, было комфортно общаться с кандидатом.
Merge Intervals - сразу задал вопрос на тему порядка интервалов, после моего ответа сразу сортировать интервалы по началу интервала (совпадающие начала интервалов решил игнорировать - сказал, что перемержатся при проходе). Рассказал про то, какой алгоритм сортировки будет использоваться. Учел случай, что интервалы с одинаковым концом и началом должны будут мержиться. На счет оценки сложности, сперва допустил ошибку и сказал, что сложность по времени будет O(n), но потом вспомнил про сортировку и оценил сложность по времени и памяти корректно. В ходе реализации предложил сразу добавлять в итоговый массив первый интервал (это упростило код). Достаточно быстро написал решение, но сдал по итогу с ошибкой. Предложил кандидату сгенерировать тест кейсы, которыми бы он тестировал свой код, но тест кейсами были покрыти не все базовые случаи (пришлось подсказать). После этого понял, что ошибка в коде будет связана с пустым слайсом интервалом, но нашел проблемное место в коде не с первого раза, но сам. По итогу, решение задачи заняло 19 минут, код получился чистый и лаконичный.
Longest Substring Without Repeating Characters - кандидат сразу предложил использовать плавающее окно для решения задачи, но сначала с неоптимальным поиском дубликатов в подстроке (затем сам рассказал, как можно улучшить это решение). На счет оценки сложности - корректно посчитал сложность по времени, но со сложностью по памяти запутался (сказал что O(n), но когда я ему рассказал про то, что алфавит ограничен, назвал корректную сложность). Перед реализацией не уточнил ничего про регистр символов, но уже время во реализации спросил про кодировки - действительно ли там будут только ASCII символы. Достаточно быстро написал решение, но сдал по итогу с ошибкой. Предложил кандидату сгенерировать тест кейсы, которыми бы он тестировал свой код. На сгенерированных тест кейсах нашел проблему и самостоятельно исправил ее, затем еще остались ошибки, оставленные по невнимательность, на которые я ему указал. По итогу, решение задачи заняло 22 минут, код получился чистый, но с одним лишним условием. Предложил кандидату упростить код - с этим он успешно справился. На дополнительный вопрос о том, какая будет максимально-возможная длина подстроки без дубликатов - ответил корректно.
Рекомендации для кандидата:
Я бы посоветовал уделить внимание тестированию кода, а именно подбору тест кейсов, которые будут покрывать большинство случаев того или иного решения (так как в первой задаче были покрыты не все базовые случаи). Также следует еще немного попрактиковаться с оценкой сложности тех или иных решений (так как в обеих задачах прослеживалась определенная неуверенность в ответах и небольшие ошибки в оценках). Ну и дополнительно не забывать уделять чуть больше времени требованиям к той или иной задаче перед тем, как переходить к ее реализации (кажется, что это позволило бы избежать ошибки в первой задаче).
Leetcode. Решение задач на leetcode. Задачи на Leecode. Алгоритмическое собеседование. Собеседование. Динамическое программирование. Жадный алгоритм. Сортировка пузырьком. Winderton.
#собеседование #mockсобеседование #leetcode #алгоритмы
Mock-собеседование по алгоритмам от Team Lead из Яндекса
Теги
алгоритмыleetcodeалгоритмическое собеседованиесобеседованиеmock собеседованиезадачи на leetcodeрешение задач на leetcodeалгоритмы деревьяпоиск в ширинуалгоритмы и структуры данныхсортировка пузырькомалгоритмы pythonалгоритмы сортировкижадный алгоритмвведение в алгоритмыалгоритмы грокаемструктуры данныхкак работают алгоритмыдинамическое программированиебинарный поискалгоритмы на javascriptдвоичный поискразделяй и властвуйwinderton