🎯 2. План подготовки: Что повторить и Что решить в первый раз Разбиваем подготовку на 5 ключевых блоков: Блок 1. Проектирование структур и ООП (Почти 100% будет на 2-м этапе!) 🔄 Обязательно повторить: LRU Cache (LeetCode #146 - Medium) — напиши его на Java с нуля с left/right стражниками! 🔄 Повторить: Insert Delete GetRandom O(1) (LeetCode #380 - Medium) — ArrayList + HashMap. 🆕 Решить в первый раз: Design Hit Counter (LeetCode #362 - Medium) — ArrayDeque за 300 секунд. Блок 2. Монотонный Стек (Фирменный стиль Яндекса) 🆕 Решить в первый раз: Daily Temperatures (LeetCode #739 - Medium) — идеальная вводная в монотонный стек! Блок 3. Графы и Дейкстра 🔄 Повторить: Course Schedule I & II (LeetCode #207/210 - Medium) — Алгоритм Кана (BFS с indegree). 🆕 Решить в первый раз: Network Delay Time (LeetCode #743 - Medium) — Алгоритм Дейкстры на Java через PriorityQueue. Блок 4. Префиксные суммы и Математика остатков 🔄 Повторить: Subarray Sum Equals K (LeetCode #560 - Medium) — pref - k в HashMap. 🔄 Повторить: Continuous Subarray Sum (LeetCode #523 - Medium) — pref % k в HashMap. Блок 5. Отрезки и Бинпоиск 🔄 Повторить: Merge Intervals (LeetCode #56 - Medium) — с List и res.toArray(new int[0][0]) на Java. 🔄 Повторить: Search in Rotated Sorted Array (LeetCode #33 - Medium) — двухпроходный бинпоиск по Маврину.