LeetCode 2091 — Удаление минимума и максимума из массива | Трюк с 3 стратегиями удаления!
Code Intuition
0:00 / 0:00
LeetCode 2091 — Удаление минимума и максимума из массива | Трюк с 3 стратегиями удаления!
69 просмотров · 1 мес. назад
Code Intuition
35 подписчиков
69 просмотров · 1 мес. назад
LeetCode 2091: Удаление минимума и максимума из массива — Оптимальный подход O(N) 🚀
📌 Ссылка на задачу: https://leetcode.com/problems/removin...
Добро пожаловать обратно в Be Code Intuition! В сегодняшнем разборе алгоритма мы разберем задачу LeetCode 2091: Удаление минимума и максимума из массива.
Удалять можно только с начала или с конца массива, никогда из середины. Поэтому вместо того, чтобы слепо имитировать удаления, мы отслеживаем позиции глобального минимума и максимума за один проход, а затем сравниваем ровно 3 возможные стратегии, чтобы гарантировать абсолютное минимальное количество общих удалений.
💡 Три стратегии удаления, рассмотренные в этом видео:
Удаление обоих индексов с начала: удалить все до более позднего из двух целевых индексов включительно → стоимость = right + 1
Удаление обоих индексов с конца: удалить все, начиная с более раннего из двух целевых индексов → стоимость = n - left
Раздельное удаление, по одному с каждого конца: удалить до более раннего индекса с начала и начиная с более позднего индекса с конца → стоимость = (left + 1) + (n - right)
Вычислив все три варианта стоимости и взяв min(removeFromLeft, removeFromRight, removeFromBoth), мы решаем задачу за один линейный проход, без моделирования методом перебора и без лишних удалений.
💡 Что вы узнаете из этого видео:
Почему следует рассматривать только 3 стратегии удаления
Как найти минимальный и максимальный индексы за один проход
Вывод формулы стоимости для каждой из 3 стратегий
Разбор логики на доске, за которым следует полная реализация на C++
⏳ Временная сложность: O(N) — один проход по массиву для нахождения минимального и максимального индексов
💾 Пространственная сложность: O(1) — всего несколько целочисленных переменных для отслеживания индексов и стоимости
Решено в рамках моей ежедневной серии задач на LeetCode, по одной задаче в день, развивающей интуицию, а не просто запоминающей решение.
Не забудьте поставить лайк, подписаться и включить уведомления, чтобы никогда не пропускать ежедневный разбор алгоритма. Оставьте комментарий, если у вас есть вопросы о логике разделения на 3 стратегии.
#leetcode #leetcode2091 #удалениеминимумаимаксимума #жадныйалгоритм #массивы #двухточечныеалгоритмы #соревновательноепрограммирование #структурыданных #алгоритмы #becodeintuition #собеседованиепопрограммированию #cpp #учебникпопрограммированию #dsa