Пстра освежить литкод
#career #interviews
Пока я прокачиваю свой перцентиль на литкоде с 2% до 3%, поделюсь своим подходом к тому, как быстро перед собесом освежить литкод. Задача – не с нуля изучить, а именно быстро вернуться в форму. В обоих случаях посоветую Neetcode, у него и ютуб-канал хорош, и вот этот роудмэп https://neetcode.io/roadmap. Но конкретней, что я делаю, чтоб снова вкурить эти указатели в связном списке и обходы деревьев
- Берем список основных тем, указанный Neetcode roadmap подойдет, вот короткое видео от того же автора про основные темы, которые лучше повторить;
- Открываем любимый жупитер и по каждой теме конспектируем основные алгоритмы и приводим код двух-трех задач уровня Easy. Самое главное: подчеркиваем основную идею в каждой задаче, трюк, зная который, уже сможешь все закодить. Например, для темы Trees накидываем inorder traversal (идея: рекурсивно посещаем левое поддерево, потом вершину, потом правое поддерево), как проверить, что деревья одинаковы (идея: рекурсивно проверяем, что значения в узлах равны и оба поддерева тоже равны), как найти максимальную глубину дерева (идея: рекрсивно смотрим на максимальную глубину левого и правого поддерева, берем из них наибольшую) и т.д. В этом, кстати, и фишка квиззов в том же Neetcode roadmap – там вопросы составлены так, чтоб для каждой задачи вспомнить основной а-ха момент;
- То же самое со структурами данных – записываем короткий конспект по каждой из них, а также указываем по 2-3 типичных задачи, где эта структура данных может пригождаться (например, для minHeap – top K minimal и алгоритм Дейкстры);
- Покупаем на время подписку Leetcode Premium (не реклама) и ботаем задачи под конкретную компанию из списка самых частых.
Я прохожусь именно по простым задачам, поэтому уточнение про Easy важно. Не вижу смысла за неделю перед собесом зависать на задачах даже уровня медиум, особенно если это условное динамическое программирование или заковыристые алгоритмы на графах (тут стоит отметить, что я готовлюсь на изи-медиум уровень для DS, конечно, если метите на SDE в гугл и по форуму литкода знаете, что будут харды, надо на это сделать поправку).
Делиться своим жупитером не буду, суть именно в том, чтоб самому через это пройти и набросать черновик, который удобен именно тебе. Возможно, захочется туда вставить скриншоты объяснения ключевых идей с Neetcode или даже собственными зарисовками.
Если у вас есть еще более крутые трюки, как быстро вкатиться в контекст алгоритмических задач – пишите в коменты.
#career #interviews
Пока я прокачиваю свой перцентиль на литкоде с 2% до 3%, поделюсь своим подходом к тому, как быстро перед собесом освежить литкод. Задача – не с нуля изучить, а именно быстро вернуться в форму. В обоих случаях посоветую Neetcode, у него и ютуб-канал хорош, и вот этот роудмэп https://neetcode.io/roadmap. Но конкретней, что я делаю, чтоб снова вкурить эти указатели в связном списке и обходы деревьев
- Берем список основных тем, указанный Neetcode roadmap подойдет, вот короткое видео от того же автора про основные темы, которые лучше повторить;
- Открываем любимый жупитер и по каждой теме конспектируем основные алгоритмы и приводим код двух-трех задач уровня Easy. Самое главное: подчеркиваем основную идею в каждой задаче, трюк, зная который, уже сможешь все закодить. Например, для темы Trees накидываем inorder traversal (идея: рекурсивно посещаем левое поддерево, потом вершину, потом правое поддерево), как проверить, что деревья одинаковы (идея: рекурсивно проверяем, что значения в узлах равны и оба поддерева тоже равны), как найти максимальную глубину дерева (идея: рекрсивно смотрим на максимальную глубину левого и правого поддерева, берем из них наибольшую) и т.д. В этом, кстати, и фишка квиззов в том же Neetcode roadmap – там вопросы составлены так, чтоб для каждой задачи вспомнить основной а-ха момент;
- То же самое со структурами данных – записываем короткий конспект по каждой из них, а также указываем по 2-3 типичных задачи, где эта структура данных может пригождаться (например, для minHeap – top K minimal и алгоритм Дейкстры);
- Покупаем на время подписку Leetcode Premium (не реклама) и ботаем задачи под конкретную компанию из списка самых частых.
Я прохожусь именно по простым задачам, поэтому уточнение про Easy важно. Не вижу смысла за неделю перед собесом зависать на задачах даже уровня медиум, особенно если это условное динамическое программирование или заковыристые алгоритмы на графах (тут стоит отметить, что я готовлюсь на изи-медиум уровень для DS, конечно, если метите на SDE в гугл и по форуму литкода знаете, что будут харды, надо на это сделать поправку).
Делиться своим жупитером не буду, суть именно в том, чтоб самому через это пройти и набросать черновик, который удобен именно тебе. Возможно, захочется туда вставить скриншоты объяснения ключевых идей с Neetcode или даже собственными зарисовками.
Если у вас есть еще более крутые трюки, как быстро вкатиться в контекст алгоритмических задач – пишите в коменты.