awesome-everything EN
↑ Обратно к восхождению

Алгоритмы с нуля

Списки, стеки, очереди: свободное припоминание

Суть Промпты на свободное припоминание по юниту. Сначала ответь своими словами, затем раскрой модельный ответ и сравни — cost list, разворот, tortoise-and-hare, LIFO/FIFO и monotonic stack.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на middle-высоте — в небе
◷ 13 min

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

Цель

Восстанови хребет юнита — почему linked list меняет индексацию на вставку в голову, как разворот и tortoise-and-hare манипулируют pointer, почему stack и queue — это дисциплины, а не структуры, и почему monotonic stack линеен — не подглядывая в уроки.

Вспомните перед уходом
  1. 01
    Почему доступ по индексу — O(n) у linked list, но O(1) у массива, и что linked list получает взамен?
  2. 02
    Пройди in-place разворот singly linked list. Какое одно движение pointer нельзя пропускать и каковы стоимости по времени и памяти?
  3. 03
    Объясни технику fast-and-slow (tortoise-and-hare). Почему pointer обязаны встретиться внутри цикла и почему ровно два шага у быстрого?
  4. 04
    И stack, и queue можно реализовать на массиве или linked list. Так что же на самом деле их различает и как выбирать между ними под задачу?
  5. 05
    Что такое deque и почему dequeue у FIFO queue через наивный shift массива тихо рушит производительность?
  6. 06
    Опиши monotonic stack и паттерн next-greater-element. Почему он O(n) несмотря на цикл внутри цикла?
Итог

Если ты смог восстановить каждый ответ по памяти, ты держишь хребет юнита: linked list меняет O(1)-индексацию на O(1)-вставку в голову, потому что разбросанность требует обхода; разворот и tortoise-and-hare — это дисциплинированные танцы pointer, где ты сохраняешь связи до перезаписи; stack и queue — дисциплины LIFO/FIFO, которые выбираешь по нужному порядку и никогда не делаешь dequeue через shift; а monotonic stack превращает O(n^2)-скан в O(n) по инварианту push-once/pop-once.

Продолжить восхождение ↑Списки, стеки, очереди: чтение кода
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.