Алгоритмы с нуля
Массивы и строки: тренажёр для собеседований
Приёмы ты понимаешь. Собеседование проверяет, сможешь ли ты потянуться за ними под таймером, вхолодную, и вслух объяснить стоимость.
Реши каждую задачу до того, как откроешь подсказку, уложись в целевое время и проговаривай временную и пространственную сложность так, будто тебя слушает интервьюер. Подсказки нужны, когда ты по-настоящему застрял — они подталкивают к приёму, но не выдают всё решение.
Шесть задач из NeetCode-150 на два приёма из этого раздела. Засеки время, реши каждую вхолодную без подсказок, затем проговори вслух временную и пространственную сложность, прежде чем двигаться дальше. Открывай подсказку, только если действительно застрял — подсказки подталкивают, но не выдают ответ.
0/6 решено
two pointers
Follow-up (вслух)
Что изменится, если игнорировать только пробелы, но учитывать пунктуацию? Где живёт условие пропуска?
Follow-up (вслух)
Почему ход двух указателей доказуемо верен здесь, но ненадёжен на неотсортированном массиве? Свяжи это с инвариантом.
Follow-up (вслух)
Можно ли набрать целевую сумму быстрее O(n²)? Какая нижняя граница делает это сложным для общего 3-sum?
sliding window
Follow-up (вслух)
Если разрешено несколько сделок покупки/продажи, как меняется жадная идея?
Follow-up (вслух)
Почему общая работа O(n), хотя left двигается много раз — что это амортизирует?
Follow-up (вслух)
Многие решения не уменьшают счётчик максимальной частоты окна. Почему ответ остаётся верным, даже когда этот счётчик устарел?
Отмечай задачу решённой, только когда сделал её вхолодную, уложился в целевое время и смог назвать сложность без запинки. Вернись через несколько дней и перерешай отмеченные — именно интервальные повторы превращают узнанный приём в рефлекс.