logo
Tarasov
Тарасов
logo
0
подписчиков
0 ₽
в месяц
?
«Мгновенная выручка» проекта за последние 30 дней с точностью до часа. Из-за подсчета в реальном времени эта цифра постоянно меняется как в большую, так и в меньшую сторону. Настоящий заработок проекта за календарный месяц обычно бывает выше.
Tarasov  Тарасов
Публикации Уровни подписки Контакты О проекте Фильтры Метки Статистика RSS Контакты Поделиться
О проекте
Всем привет. Меня зовут Алексей Тарасов, я преподаватель курсов по программированию. На этом проекте описываю решения задач для собеседований и задач, которые вызвали интерес, пишу обзоры очередных возможностях языка программирования (в приоритете JS/TS/Python/PHP), или рассказываю о смелом эксперименте и делюсь рассуждениями.
Публикации, доступные бесплатно
Уровни подписки
Исследователь (Explorer) 600 ₽ месяц

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

Оформить подписку
Исследователь PRO 1 100 ₽ месяц Осталось 10 мест
Доступны сообщения

Кроме возможностей уровня "Исследователь", этот уровень даёт возможность раз в месяц отправить свой вопрос (или задача) по теме проекта, на который будет дан/опубликован ответ в течении месяца.

Оформить подписку
Фильтры
Статистика
0 ₽ в месяц
Обновления проекта
Читать: 5+ мин
logo Tarasov

🍬 Распределяем конфеты между детьми: комбинаторная задача

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что у вас есть 5 конфет и 3 ребенка, но каждый может получить не больше 2 конфет. Сколько существует способов раздать конфеты? Это и есть суть задачи, которую мы будем решать.

Читать: 5+ мин
logo Tarasov

🚀 Реализация кэша LRU

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что вы разрабатываете систему кэширования для интернет-магазина. Нужно хранить популярные товары в быстром доступе, но память ограничена. Кэш LRU (Least Recently Used) - идеальное решение: он автоматически удаляет товары, которые давно не просматривали, освобождая место для новых. Давайте реализуем такой кэш

Читать: 4+ мин
logo Tarasov

🔍 Поиск ближайшего общего узла в графе: алгоритм BFS для задачи 2359

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что вы и ваш друг находитесь в разных точках лабиринта (узлах графа) и хотите встретиться в таком месте, чтобы максимальное из пройденных вами расстояний было как можно меньше. Именно такую проблему решает эта задача, только вместо лабиринта — направленный граф с особыми свойствами.

Читать: 6+ мин
logo Tarasov

🌴 Оптимизация соединения деревьев: максимизация целевых узлов

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что у вас есть два дерева (структуры данных), и вы можете соединить их одним ребром. Задача - для каждого узла первого дерева определить, какое максимальное количество узлов будет находиться на четном расстоянии от него после соединения с любым узлом второго дерева

Читать: 5+ мин
logo Tarasov

🌳 Оптимизация соединения деревьев: максимизация целевых узлов

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

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

Читать: 5+ мин
logo Tarasov

🏙 Анализ цветовых путей в ориентированном графе: поиск максимальной частоты цвета

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте сеть городов (узлов), где каждый город окрашен в определенный цвет, а дороги (ребра) между ними имеют строгое направление. Ваша задача - найти самый длинный маршрут, на котором чаще всего встречается какой-либо один цвет, и при этом не попасть в "бесконечный круговорот" (цикл).

Читать: 3+ мин
logo Tarasov

📜 Обход бинарного дерева: прямой порядок (preorder traversal)

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что вы исследуете генеалогическое древо семьи. Сначала вы записываете себя, затем своих родителей, затем их родителей и так далее. Это и есть прямой обход (preorder) - сначала корень, затем левое поддерево, потом правое. В программировании такой подход часто используется для работы с древовидными структурами.

Читать: 4+ мин
logo Tarasov

✂️ Собираем палиндром из двухбуквенных слов: алгоритм и оптимизация

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что у вас есть набор двубуквенных карточек ("ab", "ba", "cc" и т.д.), и вам нужно составить из них самый длинный палиндром - слово, которое читается одинаково слева направо и справа налево. Как найти оптимальное решение? Давайте разберёмся!

Читать: 5+ мин
logo Tarasov

🛠️Как перестроить связный список: задача Reorder List

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что у вас есть цепочка людей, держащихся за руки (это наш связный список). Вам нужно перестроить их так, чтобы первый человек взял за руку последнего, второй - предпоследнего и так далее. Именно это мы и будем делать с узлами связного списка в этой задаче.

Читать: 4+ мин
logo Tarasov

🐢 Как найти начало цикла в связанном списке: алгоритм черепахи и зайца

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Leetcode-задача "142. Linked List Cycle II" усложняет требования задачи "141 Linked List Cycle".
Если вы не рассматривали задачу "141 Linked List Cycle", то представьте, что вы бегаете по круговой дорожке стадиона с другом. Если вы бежите быстрее, то рано или поздно догоните его. Именно так работает алгоритм Флойда ("черепахи и зайца") для обнаружения циклов в связанных списках. Эта задача часто встречаетс

Читать: 3+ мин
logo Tarasov

🐢🐇 Как обнаружить цикл в связном списке: алгоритм Флойда (черепахи и зайца)

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что вы бежите по круговой дорожке стадиона с другом, который всегда бежит в два раза быстрее вас. Рано или поздно он вас обгонит - это и есть принцип обнаружения циклов в связном списке

Читать: 2+ мин
logo Tarasov

🦌 Поиск слов, содержащих заданный символ: простое решение

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что у вас есть список слов, и вам нужно быстро найти все слова, где встречается определённая буква. Например, из списка ["яблоко", "банан", "апельсин"] найти все слова с буквой "а".

Читать: 3+ мин
logo Tarasov

Разбиение строки на слова из словаря: все возможные варианты

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что у вас есть строка без пробелов, например "catsanddog", и словарь слов ["cat","cats","and","sand","dog"]. Задача - найти все возможные способы разбить строку на слова из словаря, добавляя пробелы. Например: "cats and dog" и "cat sand dog".

Читать: 4+ мин
logo Tarasov

🌳 Максимизация суммы значений узлов дерева с помощью операций XOR

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что у вас есть дерево с ценными узлами, и вы можете изменять значения соседних узлов, выполняя операцию XOR с заданным числом. Ваша задача - найти, какую максимальную сумму значений узлов можно получить, выполняя такие операции любое количество раз. Это как переключать состояния узлов, пытаясь добиться наибольшей общей ценности.

Читать: 4+ мин
logo Tarasov

Оптимизация запросов на преобразование массива в нулевой: leetcode 3362

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что у вас есть список операций, которые могут уменьшать значения в массиве, и вам нужно оставить только минимально необходимое количество операций, чтобы обнулить массив. Как найти максимальное число ненужных операций, которые можно безопасно удалить?

Читать: 4+ мин
logo Tarasov

Преобразование массива в нулевой: алгоритм проверки выполнимости запросов: leetcode 3355

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что у вас есть ряд чисел, например [4,3,2,1], и вам нужно обнулить их, выполняя операции: на каждом шаге можно выбрать любой поднабор чисел в заданном диапазоне и уменьшить их на 1. Задача состоит в том, чтобы определить, можно ли полностью обнулить массив, используя только заданные диапазоны операций.

Читать: 4+ мин
logo Tarasov

👍 Разбиение строки по словарю: leetcode 139

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Представьте, что у вас есть строка "ялюблюалгоритмы" и словарь ["я", "люблю", "алгоритмы"]. Можно ли разбить строку на слова из словаря?

Читать: 1+ мин
logo Tarasov

🔺 Определяем тип треугольника по трём сторонам: leetcode 3024

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

В этой задаче даются три стороны треугольника. Нужно определить какой треугольник нам дан - равносторонний (equilateral), равнобедренный (isosceles) или разносторонний (scalene)

Читать: 3+ мин
logo Tarasov

Глубокая копия связанного списка со случайными указателями: leetcode 138

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Вам нужно сделать точную копию цепочки людей, где каждый человек знает своего соседа (next) и случайного друга (random). При этом в новой цепочке все связи должны быть независимы от оригинала. Именно такую задачу мы решаем при копировании связанного списка со случайными указателями.

Читать: 1+ мин
logo Tarasov

⚽ Находим уникальный элемент среди троек: битовые операции в действии

Доступно подписчикам уровня
«Исследователь (Explorer)»
Подписаться за 600₽ в месяц

Пусть есть корзина с фруктами, где каждый вид фрукта повторяется ровно три раза, кроме одного уникального. Как быстро найти этот уникальный фрукт, не перебирая всю корзину по многу раз? Задача Single Number II предлагает элегантное решение с использованием битовых операций.

Показать еще

Обновления проекта

Статистика

0 ₽/мес
?
«Мгновенная выручка» проекта за последние 30 дней с точностью до часа. Из-за подсчета в реальном времени эта цифра постоянно меняется как в большую, так и в меньшую сторону. Настоящий заработок проекта за календарный месяц обычно бывает выше.

Фильтры

Подарить подписку

Будет создан код, который позволит адресату получить бесплатный для него доступ на определённый уровень подписки.

Оплата за этого пользователя будет списываться с вашей карты вплоть до отмены подписки. Код может быть показан на экране или отправлен по почте вместе с инструкцией.

Будет создан код, который позволит адресату получить сумму на баланс.

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

Добавить карту
0/2048