Программа освоения алгоритмов
Привет и добро пожаловать в программу освоения марса алгоритмов!🚀
Я решил на leetcode 400+ заданий, достиг ранга в 100 000 из более 3 миллионов, изучил множество мнений о алгоритмах и их изучении и собрал этот материал для вас.
До изучения алгоритмов:
Изучите основы языка:
- Базовые типы - целые и дробные числа, строки, списки, хэш-таблицы(словари)
- Функции, как они реализованны в языке и как их создавать
- Классы - достататочно просто понимать как реализованы в языке(заданий с использованием классов мало, но все решения должны быть оформлены как функция класса Solution)
- Встроенная библиотека, нужно понимать как сотрировать, хранить и управлять данными
Изучите концепцию алгоритмического программирования:
- Прочитайте книгу "Грокаем Алгоритмы" автор: Адитья Бхаргава
- Дополнить знания книгой "Карьера программиста" автор: Гэйл Лакман Макдауэлл, раздел с решением задач оставьте "на потом"
Подробнее -> в этом посте.
Изучение алгоритмов
В изучении алгоритмов важно идти от простого к сложному, нет смысла решать задачи на два указателя, если вы ещё не разобрались с простыми задачами на указатели.
В этом руководстве я разделил задачи на 16 тем. Для каждой темы собрал отдельную страницу с описанием темы и заданиями этой темы. Некоторые задания относятся сразу к нескольким темам. В таких заданиях это будет указано дополнительно, а само оно будет в разделе более сложной темы.
Данный материал постоянно обновляется и для всех заданий я пишу подробное описание на русском языке, алгоритм решения и пример решения на двух языках программирования: Python и Rust. В таком случае ссылка будет на страницу с разбором задания, ссылка на само задание будет там же.