Серіалізація та десеріалізація рішення LeetCode двійкового дерева

Постановка проблеми Серіалізація та десеріалізація двійкового дерева Рішення LeetCode – Серіалізація – це процес перетворення структури даних або об’єкта в послідовність бітів, щоб їх можна було зберегти у файлі чи буфері пам’яті, або передати через мережеве з’єднання для відновлення пізніше. в…

докладніше

Знайдіть рішення LeetCode для повторюваного числа

Постановка задачі Знайти повторюване число LeetCode Рішення – заданий масив цілих чисел, що містить n + 1 цілих чисел, де кожне ціле число знаходиться в діапазоні [1, n] включно. Є лише одне повторюване число в числах, поверніть це повторюване число. Ви повинні вирішити проблему, не змінюючи масив nums і використовує лише постійний додатковий простір. Вхід: nums = [1,3,4,2,2] Вихід: 2 Пояснення…

докладніше

Максимальний добуток трьох чисел Рішення LeetCode

Постановка задачі Максимальний добуток трьох чисел Розв’язання LeetCode – Нам дається масив, питання просить нас обчислити максимальний добуток будь-яких 3 чисел. Приклади Приклад 1: Вхід: nums = [1,2,3] Вихід: 6 Приклад 2: Вхід: nums = [1,2,3,4] Вихід: 24 Приклад 3: Вхід: nums = …

докладніше

Рішення LeetCode для кешу LRU

Запитання Спроектуйте структуру даних, яка відповідає обмеженням кешу, що використовується найменше нещодавно (LRU). Реалізуйте клас LRUCache: LRUCache(int capacity) Ініціалізуйте кеш LRU з ємністю додатного розміру. int get(int key) Повертає значення ключа, якщо ключ існує, інакше повертає -1. void put(int key, int value) Оновити значення ключа, якщо він існує. В іншому випадку додайте пару ключ-значення до…

докладніше

Перетворення звичайного BST на збалансований BST

Постановка проблеми з урахуванням двійкового дерева пошуку (BST), напишіть алгоритм перетворення BST у збалансоване двійкове дерево пошуку. Збалансоване дерево двійкового пошуку - це не що інше, як двійкове дерево пошуку, різниця між висотою лівого піддерева та правого піддерева менше або дорівнює 1.…

докладніше

Злиття інтервалів, що перекриваються

У задачі про перекриття інтервалів злиття ми дали набір інтервалів, злиття та повернення всіх інтервалів, що перекриваються. Приклад введення: [[2, 3], [3, 4], [5, 7]] Вивід: [[2, 4], [5, 7]] Пояснення: Ми можемо об’єднати [2, 3] та [3 , 4] разом, щоб сформувати [2, 4] Підхід до пошуку злиття…

докладніше

Інтервали злиття

У задачі злиття інтервалів ми дали набір інтервалів виду [l, r], злиття перекриваючих інтервалів. Приклади Вхід {[1, 3], [2, 6], [8, 10], [15, 18]} Вихід {[1, 6], [8, 10], [15, 18]} Вхід {[ 1, 4], [1, 5]} Вихід {[1, 5]} Наївний підхід для злиття інтервалів…

докладніше

Розділити чотири окремі струни

Постановка проблеми У задачі “Розділити чотири окремі рядки” ми повинні перевірити, чи може даний вхідний рядок розділитися на 4 рядки таким чином, щоб кожен рядок не був порожнім і відрізнявся один від одного. Формат введення Перший і єдиний самотній рядок, що містить рядок “s”. Вихідний формат Друк "Так", якщо ...

докладніше

Інтервали перекриття злиття II

Постановка проблеми У задачі “Об’єднання перекриваючих інтервалів II” ми навели набір інтервалів. Напишіть програму, яка об’єднає інтервали, що перекриваються, в один і надрукує всі інтервали, що не перекриваються. Формат введення Перший рядок, що містить ціле число n. Другий рядок, що містить n пар, де кожна пара ...

докладніше

Кількість трійнят із сумою менше заданої вартості

Постановка задачі Ми дали масив, що містить N кількість елементів. У даному масиві підрахуйте кількість триплетів із сумою, меншою за задане значення. Приклад Введення a [] = {1, 2, 3, 4, 5, 6, 7, 8} Сума = 10 Вихід 7 Можливі триплети: ...

докладніше

Translate »