Не перебирай всё! Используй Two Pointers для поиска пары

43 подписчика

12+
12+

16 часов назад

ПожаловатьсяНарушение авторских прав

43 подписчика

12+
12+

16 часов назад

ПожаловатьсяНарушение авторских прав
12+
12+

16 часов назад

Изучите алгоритм двух указателей для решения задачи Two Sum. Оптимизируйте поиск пары чисел в массиве за линейное время. В этом видео мы разберем один из самых полезных паттернов для подготовки к техническим собеседованиям — алгоритм двух указателей. Этот метод незаменим, когда требуется выполнить поиск пары элементов с заданной суммой в отсортированном массиве, избегая полного перебора. Мы пошагово решим задачу LeetCode Two Sum, наглядно продемонстрировав, как смещение левого и правого указателей позволяет добиться эффективности O(n). Вы узнаете, как работает оптимизация алгоритмов на практике и почему этот подход экономит ресурсы по сравнению с классическими методами. Подписывайтесь на канал, чтобы получать еженедельные разборы алгоритмических задач, и напишите в комментариях, какую тему вы хотели бы разобрать следующей. В этом видео разбираем алгоритм двух указателей (Two Pointers) — один из базовых и часто используемых алгоритмических паттернов для решения задач на массивы и строки. Рассмотрим разновидность двух указателей, которые движутся навстречу друг другу: один указатель находится в начале массива, второй — в конце массива. На примере задачи LeetCode Two Sum разберем идею метода Two Pointers и пошагово посмотрим, как движение левого и правого указателя позволяет эффективно искать пару элементов с заданной суммой. Основная идея алгоритма двух указателей заключается в том, что для отсортированного массива мы устанавливаем left в начало массива, а right — в конец. Вычисляем сумму nums[left] + nums[right]. Если сумма меньше target, увеличиваем left, потому что нам нужна большая сумма. Если сумма больше target, уменьшаем right, потому что нам нужна меньшая сумма. Если сумма равна target — нужная пара найдена. Такой подход позволяет отказаться от полного перебора всех пар элементов и уменьшить временную сложность поиска с O(n²) до O(n). Если массив уже отсортирован, алгоритм Two Pointers работает за O(n) по времени и требует O(1) дополнительной памяти. Если перед применением двух указателей необходимо отсортировать массив, общая временная сложность становится O(n log n) из-за сортировки. В видео подробно разбираем Two Pointers, два указателя, левый и правый указатель, встречные указатели, алгоритмы на массивах, LeetCode, Two Sum, поиск пары элементов, target, временную сложность, пространственную сложность и оптимизацию алгоритмов. Этот паттерн часто встречается на алгоритмических собеседованиях и в задачах LeetCode, поэтому понимание алгоритма двух указателей полезно для подготовки к техническим интервью, изучения алгоритмов и структур данных, решения задач по программированию и развития алгоритмического мышления. #алгоритмы #программирование #Python #LeetCode #TwoPointers #TwoSum #структурыданных #собеседование #алгоритмыPython #кодинг #разработчик #информатика #задачи #техническоесобеседование #массивы 👤 Обо мне и канале: Меня зовут Дима. Я backend-разработчик в банке ВБРР, проектирую и поддерживаю ETL-процессы, настраиваю загрузку больших данных и оптимизирую высоконагруженные системы. Недавно окончил университет по направлению «Искусственный интеллект» и уже 6 лет параллельно занимаюсь программированием. На этом канале я делюсь всем, что меня драйвит: разбираю алгоритмы, решаю рабочие и олимпиадные задачки, комментирую IT- и AI-новости, объясняю термины, показываю классический ML, нейросети, data engineering и практические кейсы из реальных проектов. =============================================================================== 🔗 Мои соцсети: ТГ - https://t.me/devwhoami Иностранный канал - https://www.youtube.com/@whoami_global =============================================================================== ⏱ Таймкоды: 0:00 Оптимизация поиска суммы в массиве 0:54 Разбор задачи Two Sum II на LeetCode 2:51 Логика движения указателей навстречу 3:52 Реализация алгоритма на Python

Название:

Не перебирай всё! Используй Two Pointers для поиска пары

Категория:

Разное