Слогер Создать блог
Карьера

Как запомнить паттерны LeetCode, если задачи выветриваются через месяц

Счётчик решённых задач не помогает на собеседовании. Работает другое: короткие заметки про паттерн и подсказку, перерешивание с пустого редактора и повторения по расписанию.

Две суммы, Valid Parentheses и Merge Intervals — по три раза каждую, ещё до первого реального интервью. Не из любви к ним. Просто после пары недель паузы задача снова выглядит новой: смутное «где-то я это видел», а на экране опять брутфорс.

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

Счётчик решённых — плохой спидометр

150 решённых. 300. Цифра в профиле растёт и создаёт ощущение движения вперёд. На интервью спрашивают другое: узнаете ли вы форму задачи в первые пять минут, когда условие сформулировано иначе и знакомого названия нет.

Это вопрос воспроизведения по памяти, а не объёма. Четыреста задач, из которых вы под давлением не вытащите ни одной идеи, — это в основном практика чтения чужих решений.

Сто двадцать задач, про каждую из которых вы по памяти скажете «это скользящее окно, потому что…», полезнее. Спорить тут особо не о чем.

Сначала паттерны, потом раскладывание задач по ним

Большинство интервью-задач укладывается в небольшой набор форм: два указателя, скользящее окно, бинарный поиск по ответу, BFS и DFS по сеткам, топологическая сортировка, куча для top-k, интервалы, монотонный стек, union-find и семейства динамики вроде рюкзака и наибольшей общей подпоследовательности.

После решения задачи допишите одну строку: какой это паттерн и что именно в условии на него указало. Вторая половина важнее первой — в интервью новая задача не будет называться так же.

Longest Substring Without Repeating Characters: скользящее окно. Подсказка: «самый длинный непрерывный» плюс ограничение, которое отслеживается через set.

Записывайте «почему», код не переписывайте

Старые заметки со вставленными решениями — мёртвый груз. Вы их не перечитываете. А если перечитываете, киваете и не учитесь ничему: читать код, который уже понятен, — самая низкоусиленная форма ревизии из возможных.

Лучше держать для каждой задачи свои формулировки:

  • паттерн и подсказка в условии;
  • тот единственный инсайт, после которого щёлкнуло. Для Trapping Rain Water это «вода в каждой точке зависит от меньшего из максимумов слева и справа»;
  • своя первая ошибка: съехал на единицу при сжатии окна, забыл пустой ввод — что было, то и пишите.

Слов на сорок. Код и так лежит на LeetCode.

Перерешивать, а не перечитывать

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

Иногда пролетаете. Иногда застреваете ровно в том же месте, и это диагноз: вы запомнили ответ, а не идею. В любом случае десять минут вместо сорока, которые ушли на первое решение.

По сути это активное припоминание, только применённое к коду. Достать из памяти — то, что заставляет остаться. Посмотреть ещё раз — почти ничего не даёт.

Разведите повторения по времени

Перерешать следующим утром — слишком легко, время потрачено зря. Через два месяца — начинаете с нуля.

Работает интервальное повторение: через день, потом через несколько дней, потом через неделю, две, месяц. Каждое успешное повторение отодвигает следующее. То, что снова не получилось, возвращается раньше остальных. Логику SM-2 можно реализовать самому — по сути это две даты на задачу.

Хватит таблицы с колонками «когда смотрел в последний раз» и «когда смотреть снова». Или Anki с одной карточкой на подсказку паттерна. Инструмент вторичен, а вот приходить на повторения — обязательно.

Объяснения, которые вы смотрели, тоже надо вернуть в оборот

Часть знания паттернов приходит вообще не с LeetCode. Из разбора NeetCode про то, почему бинарный поиск работает по отсортированному пространству ответов. Из двенадцатиминутного видео про union-find со сжатием путей. Из статьи, после которой наконец стало понятно bottom-up ДП.

Всё это сохраняется в закладки и больше не открывается. Автор исходного текста сделал под эту дырку приложение Recl: кидаешь туда видео, рилс, подкаст или статью, оно делает выжимку главных идей с таймстемпами, раскладывает по темам и поднимает их обратно на 1, 3, 7, 14, 30 и 60-й день после сохранения. Плюс поиск по своим сохранениям в виде вопроса — «что у меня было про монотонные стеки».

Волшебства внутри нет: задачи оно не решает и трекером LeetCode не является. Перерешивание в пустом редакторе всё равно на вас.

Гринд против работы с паттернами

КритерийБесконечный гриндПаттерны и повторения
Метрика прогрессаКоличество решённых задач в профилеУзнавание формы новой задачи за первые пять минут
Что делаете после решенияСтавите галочку и переходите к следующейОдна строка про паттерн, подсказку, инсайт и первую ошибку
Что происходит через пару недельЗадача выглядит совершенно новойПомните подход, спотыкаетесь на деталях реализации
Сколько времени на задачуКаждое возвращение стоит как первое решение — около сорока минутПовторение съедает десять-пятнадцать минут
Скорость роста счётчикаБыстроЗаметно медленнее

Неделя, которая работает

  • Две-три новые задачи в день, выбранные по паттерну.
  • К каждой — заметка: паттерн, инсайт, первая ошибка.
  • Десять-пятнадцать минут на перерешивание того, что подошло по расписанию.
  • Любой хороший разбор — туда, откуда он вернётся сам.

Где обычно ломается

Счётчик как единственная метрика. Тогда пропуск повторения не считается потерей, а ведь именно он и есть потеря.

Заметки-копипаста. Код в них не перечитывают, а если перечитывают, то без пользы.

Повтор не в ту сторону. Слишком рано — легко и бессмысленно, слишком поздно — с чистого листа.

Коллекция объяснений без возврата. Плейлист с разборами union-find сам себя не откроет.

Не записана первая ошибка. А повторяется обычно именно она.

Счётчик решённых растёт медленнее, чем раньше. Зато когда попадается задача про самое длинное окно с не более чем k разными символами, вы понимаете, что это, не дочитав условие до конца. Из всех чисел на собеседовании учитывают только это.

По материалам: career. Текст переработан редакцией Слогера.

← На главную

Рекламное место — Конец поста
Реклама · Слогер

Комментарии (0)

Войдите, чтобы комментировать.

Пока нет комментариев. Будьте первым.

Маркетинг

Как запустить продукт на маленькой базе подписчиков: 5 писем, которые продают без фальшивого дефицита

Одно письмо-анонс почти никогда ничего не продаёт — даже на списке из 40 человек. Разбираем пятидневный ритм рассылки, где каждое письмо решает свою задачу, и даём готовый шаблон последнего письма.

Слогер 28.10.2026 ▲ 1
Разработка

Как выгрузить вакансии и зарплатные вилки из Greenhouse API: разбор подводных камней

Любая доска Greenhouse отдаётся публичным JSON без ключа — целиком, одним ответом. Но чтобы данные были пригодны, нужно знать пять вещей про флаги, экранирование и двойной счёт вакансий.

Слогер 28.10.2026 ▲ 0
Маркетинг

Переезд (миграция) с Битрикс24 и amoCRM без потери данных: в Fluxs появился модуль миграции

4 000 контактов в Битрикс24. Сотни сделок. Задачи за несколько лет. И всё это нужно перенести в новую CRM? Раньше такой переезд мог занять несколько дней. А иногда именно из-за переноса данных компании годами оставались в неудобной системе. Мы решили эту проблему. 🚀 В Fluxs появился модуль «Миграция данных». Теперь можно переносить контакты, сделки, задачи, проекты и базу знаний из Битрикс24, amoCRM, Jira, Яндекс Трекера и Confluence. А если вашей системы нет в списке — загрузить данные через Excel, CSV или JSON.

fluxs.ru 27.10.2026 ▲ 1
Fluxs lenta
Реклама · fluxs.ru
Карьера

Чем Cal-WARN отличается от федерального WARN: разбор порогов, уведомлений и штрафов

Калифорния требует предупреждать о массовых сокращениях за 60 дней — как и федеральный закон США. Только порог ниже, парт-тайм считается, а правило одной трети не действует. Разбираем, что это меняет для работника и работодателя.

Слогер 27.10.2026 ▲ 0
Карьера

WARN Act: кто считается работодателем при массовом сокращении — разбор для дочек, холдингов и франшиз

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

Слогер 27.10.2026 ▲ 0
Разработка

Разбор: почему профессию разработчика хоронят каждые 20 лет и как работать, когда всё меняется

Паника вокруг ИИ — не первая волна перемен в отрасли: похожие прогнозы звучали и в 1961 году, и в 2011-м. Разбираем, что в нынешней тревоге реально, а что стоит воспринимать как фоновый шум.

Слогер 27.10.2026 ▲ 0
Fluxs lenta
Реклама · fluxs.ru
Карьера

Страх провала и страх свидетелей: чем они отличаются и как начинать новое, когда страшно

«Я пока недостаточно хорош» — честная и бесполезная фраза. Обычно дело не в навыке, а в конкретных людях, которые увидят вашу первую попытку. Разбираем, как уменьшить ставку и всё-таки начать.

Слогер 26.10.2026 ▲ 0
Карьера

Почему удалёнка платит меньше — и в каких профессиях всё наоборот: разбор 8 049 вакансий

Медианная вилка на удалёнке ниже офисной на 6,5%. Но внутри функций разрыв меняет знак: безопасность и продажи получают премию за удалёнку, data/ML — самую большую скидку. Показываю, как читать эти цифры на переговорах.

Слогер 26.10.2026 ▲ 0
Личный опыт

Как заказать командную вышивку без минимальной партии: разбор и чек-лист

Малая команда редко может позволить себе стартовый тираж на 30 вещей. Разбираем схему, при которой вышивка делается по одной штуке — и при этом логотип у всех выглядит одинаково.

Слогер 26.10.2026 ▲ 0
Маркетинг

Автоматизация бизнеса за 15 000 или 170 000 рублей в год: в чём разница?

Автоматизация бизнеса за 15 000 или 170 000 ₽ в год. За что такая разница? 🤔 Представьте: компании нужно всего несколько вещей — принимать заявки, согласовывать счета и контролировать задачи сотрудников. А ей предлагают целую цифровую экосистему: CRM, телефонию, маркетинг, аналитику, десятки дополнительных функций… Но что, если половина из этого бизнесу вообще не нужна?

Слогер 25.10.2026 ▲ 1
Fluxs lenta
Реклама · fluxs.ru