Роман Медведев | LeetCode и Python
5 subscribers
2 links
Алгоритмы, Python и подготовка к техническим собесам. Коротко, практично, без решения сотен задач вслепую.
Download Telegram
Всем привет 🤝

Здесь я буду публиковать важную информацию, которая будет полезна тебе на алгоритмической секции. Если ты пишешь на питоне, готовишься к собесу или просто хочешь держать себя в форме, то тебе сюда.

Об авторе:
Инженер по машинному обучению в Госуслугах, 10+ лет в IT и Data Science. Провожу алгоритмические собеседования и знаю, где чаще всего ошибаются кандидаты.
🚨Проверь себя на 10 must-have задачах, на которых чаще всего валятся на алгоритмических собесах

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 минут и потом показать решение — плохая стратегия 👎🏻

На собесе нужно думать вслух 🎙👍🏻
🤡 Если завис на собесе — не молчи.

Молчание выглядит так, будто ты не знаешь вообще ничего.

Лучше скажи:
«Сначала решу в лоб».
«Потом попробую улучшить».
«Похоже, здесь можно использовать hash map / two pointers / BFS».

Даже если решение ещё не готово, интервьюер уже видит: ты думаешь 🤔

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

Не надо

Сначала brute force 👍🏻
Потом сложность 👍🏻
Потом улучшение 👍🏻
Потом код 👍🏻

На собесе оценивают не только решение. Оценивают и то, как ты к нему идёшь 📈
Разберём одну суперизвестную задачу, которую тебе точно надо уметь решать:

https://leetcode.com/problems/two-sum/description/

Да, это тот самый Two Sum. Задача появилась на LeetCode ещё в 2011 году, но её до сих пор активно спрашивают на собесах. И всё ещё много тех, кто не может быстро найти оптимальное решение 😢

Проверь себя — попробуй решить самостоятельно за 10–15 минут. Если не получилось — смотри мой разбор https://youtu.be/MclGYM0myqE