Алгоритмы на массивах · ОП.04 · Макаров М. Н.

ОП.04 · основы алгоритмизации и программирования · раздел 2 · массивы и последовательные техники

6 модулей

Алгоритмы
на массивах

Техники, которые спрашивают
на алгоритмической секции

Раздел 2 курса — массивы, строки и последовательные техники: два указателя, скользящее окно, префиксные суммы, интервалы. Каждая тема раздела — отдельный модуль этой книги. Занятие 7 о массиве, индексах и границах уже есть в виде презентации, книга начинается с модуля 8.

Модули устроены одинаково. Сначала — где технику спрашивают и где она работает в программах, как звучат условия задач и какие вопросы задают до кода. Затем — сам алгоритм: перебор для сравнения, идея, ручное упражнение, пошаговый прогон настоящего кода, доказательство. В конце — типичные ошибки с прогонами, замер нескольких способов и практика по стартовому набору с тестами.

Весь код в книге — Python 3.12. Вывод программ, пошаговые прогоны и замеры получены запуском.

Python 3.12пошаговые прогоныручные упражнениязамерыpytestLeetCode

ПланМодули раздела

Номер модуля совпадает с номером занятия в календарно-тематическом плане. Модули 8, 9 и 10 готовы целиком, модули 11–12 пока показаны планом глав: они будут написаны по тому же образцу.

МАССИВ
занятие 7

Массив: индексы, проходы, границы

Адрес по индексу, полуинтервал, ошибки на единицу, инвариант прохода, изменение на месте и ёмкость списка. Презентация на пару и стартовый набор.

УКАЗАТЕЛИ
ОКНО
ОКНО+
ПРЕФИКСЫ
занятие 11 · план

Префиксные суммы и запросы на диапазоне

Префиксная сумма, полуинтервал [l, r), много запросов, баланс подготовки и ответа, обзор двумерного случая.

  • 11.1Где нужны быстрые запросы на диапазонеготовится
  • 11.2Префиксная сумма и полуинтервалготовится
  • 11.3Сервис сумм на диапазонахготовится
  • 11.4Равновесный индексготовится
  • 11.5Подотрезки с заданной суммой и словарьготовится
  • 11.6Двумерные префиксные суммы: обзорготовится
  • 11.7Практика и домашнее заданиеготовится
ИНТЕРВАЛЫ
занятие 12 · план

Интервалы: сортировка как инструмент

Представление интервала, пересечение, объединение, расписания и логистика, сортировка по началу и по концу.

  • 12.1Интервалы в календарях и логистикеготовится
  • 12.2Как записать интервал и когда два пересекаютсяготовится
  • 12.3Объединение пересекающихся интерваловготовится
  • 12.4Встречи без конфликтовготовится
  • 12.5Сортировка по началу и по концуготовится
  • 12.6Практика и домашнее заданиеготовится

УстройствоКак читать модуль

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

БлокЧто с ним делать
Пошаговый прогонКнопка «шаг →» или стрелка вправо: подсвечивается строка кода, справа меняются переменные и указатели, снизу — объяснение шага.
Ручное упражнениеРешение на каждом шаге принимаете вы. Неверный ход не выполняется, вместо него появляется объяснение.
Таблица пар, счётчик, графикПоказывают одно и то же с разных сторон: как алгоритм исключает варианты и сколько это стоит.
ПесочницаФункция пишется прямо на странице и проверяется тестами. Python загружается в браузер при первом запуске, около 10 МБ, нужен интернет.
Python в этой строкеРаскрывающиеся подсказки у кода: как работает конструкция языка, с настоящим выводом интерпретатора.
Сборка кода из строкСтроки перемешаны, их нужно расставить по порядку стрелками или перетаскиванием.
Проверьте себяПосле ответа открывается разбор выбранного и верного вариантов.
Алгоритмы на массивах · ОП.04 · 3 курс Автор: Макаров Максим Николаевич