Перейти к содержанию

Программа освоения алгоритмов

Привет и добро пожаловать в программу освоения марса алгоритмов!🚀

Я решил на leetcode 400+ заданий, достиг ранга в 100 000 из более 3 миллионов, изучил множество мнений о алгоритмах и их изучении и собрал этот материал для вас.

До изучения алгоритмов:

Изучите основы языка:

  • Базовые типы - целые и дробные числа, строки, списки, хэш-таблицы(словари)
  • Функции, как они реализованны в языке и как их создавать
  • Классы - достататочно просто понимать как реализованы в языке(заданий с использованием классов мало, но все решения должны быть оформлены как функция класса Solution)
  • Встроенная библиотека, нужно понимать как сотрировать, хранить и управлять данными

Изучите концепцию алгоритмического программирования:

  • Прочитайте книгу "Грокаем Алгоритмы" автор: Адитья Бхаргава
  • Дополнить знания книгой "Карьера программиста" автор: Гэйл Лакман Макдауэлл, раздел с решением задач оставьте "на потом"

Подробнее -> в этом посте.

Изучение алгоритмов

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

В этом руководстве я разделил задачи на 16 тем. Для каждой темы собрал отдельную страницу с описанием темы и заданиями этой темы. Некоторые задания относятся сразу к нескольким темам. В таких заданиях это будет указано дополнительно, а само оно будет в разделе более сложной темы.

Данный материал постоянно обновляется и для всех заданий я пишу подробное описание на русском языке, алгоритм решения и пример решения на двух языках программирования: Python и Rust. В таком случае ссылка будет на страницу с разбором задания, ссылка на само задание будет там же.

Нажимайте на название темы и переходите к подробному описанию и списку заданий!