Всем привет 🤝
Здесь я буду публиковать важную информацию, которая будет полезна тебе на алгоритмической секции. Если ты пишешь на питоне, готовишься к собесу или просто хочешь держать себя в форме, то тебе сюда.
Об авторе:
Инженер по машинному обучению в Госуслугах, 10+ лет в IT и Data Science. Провожу алгоритмические собеседования и знаю, где чаще всего ошибаются кандидаты.
Здесь я буду публиковать важную информацию, которая будет полезна тебе на алгоритмической секции. Если ты пишешь на питоне, готовишься к собесу или просто хочешь держать себя в форме, то тебе сюда.
Об авторе:
Инженер по машинному обучению в Госуслугах, 10+ лет в IT и Data Science. Провожу алгоритмические собеседования и знаю, где чаще всего ошибаются кандидаты.
🚨Проверь себя на 10 must-have задачах, на которых чаще всего валятся на алгоритмических собесах
1) Two Sum
Многие начинают с
2) Valid Parentheses
Путаются в порядке закрывающих скобок и edge cases
3) Merge Intervals
Не понимают, когда интервал надо расширять, а когда добавлять новый
4) Search Insert Position
Ошибки в
5) Longest Substring Without Repeating Characters
Сложно правильно двигать левую границу окна
6) Subarray Sum Equals K
Неочевидно, зачем хранить частоты префиксных сумм
7) Top K Frequent Elements
Кандидаты знают
8) Number of Islands
Ломаются на
9) Course Schedule
Сложно перейти от задачи к графовой модели
10) LRU Cache
Проверяет не только алгоритмы, но и умение проектировать структуру данных
В следующих постах разберу подробнее эти задачи 👍
1) Two Sum
Многие начинают с
O(n²), не умеют хранить уже увиденные элементы2) Valid Parentheses
Путаются в порядке закрывающих скобок и edge cases
3) Merge Intervals
Не понимают, когда интервал надо расширять, а когда добавлять новый
4) Search Insert Position
Ошибки в
left, right, mid, бесконечные циклы5) Longest Substring Without Repeating Characters
Сложно правильно двигать левую границу окна
6) Subarray Sum Equals K
Неочевидно, зачем хранить частоты префиксных сумм
7) Top K Frequent Elements
Кандидаты знают
sort, но не понимают trade-off по сложности8) Number of Islands
Ломаются на
visited, границах матрицы и рекурсии9) Course Schedule
Сложно перейти от задачи к графовой модели
10) LRU Cache
Проверяет не только алгоритмы, но и умение проектировать структуру данных
В следующих постах разберу подробнее эти задачи 👍
🚨Главная ошибка на алгоритмическом собесе — сразу писать код.
Звучит странно, но это правда.
Интервьюер смотрит не только на финальный ответ.
Он смотрит, как ты думаешь.
Сначала нужно:
1) понять условие
2) уточнить краевые случаи (например, может ли быть пустой список, отрицательные значения и т.д.)
3) предложить решение в лоб (что первое приходит в голову)
4) объяснить, как улучшить
5) и только потом писать код
Молчать 20 минут и потом показать решение — плохая стратегия 👎🏻
На собесе нужно думать вслух 🎙👍🏻
Звучит странно, но это правда.
Интервьюер смотрит не только на финальный ответ.
Он смотрит, как ты думаешь.
Сначала нужно:
1) понять условие
2) уточнить краевые случаи (например, может ли быть пустой список, отрицательные значения и т.д.)
3) предложить решение в лоб (что первое приходит в голову)
4) объяснить, как улучшить
5) и только потом писать код
Молчать 20 минут и потом показать решение — плохая стратегия 👎🏻
На собесе нужно думать вслух 🎙👍🏻
🤡 Если завис на собесе — не молчи.
Молчание выглядит так, будто ты не знаешь вообще ничего.
Лучше скажи:
«Сначала решу в лоб».
«Потом попробую улучшить».
«Похоже, здесь можно использовать hash map / two pointers / BFS».
Даже если решение ещё не готово, интервьюер уже видит: ты думаешь 🤔⏰
Паника начинается, когда ты пытаешься сразу выдать идеальный ответ.
❌Не надо ❌
Сначала brute force 👍🏻
Потом сложность 👍🏻
Потом улучшение 👍🏻
Потом код 👍🏻
На собесе оценивают не только решение. Оценивают и то, как ты к нему идёшь 📈
Молчание выглядит так, будто ты не знаешь вообще ничего.
Лучше скажи:
«Сначала решу в лоб».
«Потом попробую улучшить».
«Похоже, здесь можно использовать hash map / two pointers / BFS».
Даже если решение ещё не готово, интервьюер уже видит: ты думаешь 🤔⏰
Паника начинается, когда ты пытаешься сразу выдать идеальный ответ.
❌Не надо ❌
Сначала brute force 👍🏻
Потом сложность 👍🏻
Потом улучшение 👍🏻
Потом код 👍🏻
На собесе оценивают не только решение. Оценивают и то, как ты к нему идёшь 📈
Разберём одну суперизвестную задачу, которую тебе точно надо уметь решать:
https://leetcode.com/problems/two-sum/description/
Да, это тот самый Two Sum. Задача появилась на LeetCode ещё в 2011 году, но её до сих пор активно спрашивают на собесах. И всё ещё много тех, кто не может быстро найти оптимальное решение 😢
Проверь себя — попробуй решить самостоятельно за 10–15 минут. Если не получилось — смотри мой разбор https://youtu.be/MclGYM0myqE
https://leetcode.com/problems/two-sum/description/
Да, это тот самый Two Sum. Задача появилась на LeetCode ещё в 2011 году, но её до сих пор активно спрашивают на собесах. И всё ещё много тех, кто не может быстро найти оптимальное решение 😢
Проверь себя — попробуй решить самостоятельно за 10–15 минут. Если не получилось — смотри мой разбор https://youtu.be/MclGYM0myqE
LeetCode
Two Sum - LeetCode
Can you solve this real interview question? Two Sum - Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
You may assume that each input would have exactly one solution, and you may not…
You may assume that each input would have exactly one solution, and you may not…