Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
dTub
Скачать

Подсчитайте общее количество уникальных двоичных деревьев поиска — n-ное каталонское число (динам...

Автор: Back To Back SWE

Загружено: 2019-01-15

Просмотров: 66374

Описание:

Бесплатный 5-дневный мини-курс: https://backtobackswe.com
Попробуйте нашу полную платформу: https://backtobackswe.com/pricing
📹 Интуитивно понятные видеообъяснения
🏃 Запускайте код по мере обучения
💾 Сохраняйте прогресс
❓Новые, ранее не рассматривавшиеся вопросы
🔎 Получите все решения

Вопрос: При заданном n, сколько структурно уникальных BST (бинарных деревьев поиска), хранящих значения 1 ... n?

Каталонские числа: https://en.wikipedia.org/wiki/Catalan...

Определите G(n): количество уникальных BST для последовательности длины n.

G(0) = 1
G(1) = 1

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

Определим F(i,n): количество уникальных BST-деревьев, где число i служит корнем BST (1 меньше или равно i, которое меньше или равно n).

G(n) = сумма F(i, n) от 1 до n.

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

Пример:

n ​​= 5, то есть [1, 2, 3, 4, 5]

При вычислении F(3, 5) мы получим
левое поддерево с [1, 2], то есть G(2);
правое поддерево с [4, 5], то есть G(2);

G(n) вычисляет количество уникальных деревьев, которые мы можем построить из n возможных значений, независимо от того, каковы эти значения.

Реализация

Заметим, что F(i, n) = G(i - 1) * G(n - i)

Чтобы получить F(i, n), мы рассматриваем все комбинации вариантов левого дерева со всеми вариантами правого дерева.

Это исчерпывающее сопоставление двух наборов элементов называется декартовым произведением.

Теперь у нас есть новый способ выразить F(i, n)

F(i, n) = G(i - 1) * G(n - i)

G(n) = суммирование от 1 до n значений G(i - 1) * G(n - i)

Теперь это можно решить с помощью DP, используя нисходящую рекурсию или восходящий алгоритм.

Для каждого G(n) вплоть до запрошенного n мы решим уравнение суммирования G(n).

В конце мы возвращаем запрошенное значение G(n), для которого в итоге получим ответ.

++++++++++++++++++++++++++++++++++++++++++++++++++++

HackerRank:    / @hackerrankofficial  

Тушар Рой:    / tusharroy2525  

GeeksForGeeks:    / @geeksforgeeksvideos  

Джарвис Джонсон:    / vsympathyv  

Успех в технологиях:    / @successintech  

Подсчитайте общее количество уникальных двоичных деревьев поиска — n-ное каталонское число (динам...

Поделиться в:

Доступные форматы для скачивания:

Скачать видео mp4

  • Информация по загрузке:

Скачать аудио mp3

Похожие видео

Compute The Next Permutation of A Numeric Sequence - Case Analysis (

Compute The Next Permutation of A Numeric Sequence - Case Analysis ("Next Permutation" on Leetcode)

Egg Dropping Problem: Dynamic Programming Fundamentals & Understanding Subproblem Decomposition

Egg Dropping Problem: Dynamic Programming Fundamentals & Understanding Subproblem Decomposition

Каталонские числа выведены!

Каталонские числа выведены!

The Change Making Problem - Fewest Coins To Make Change Dynamic Programming

The Change Making Problem - Fewest Coins To Make Change Dynamic Programming

Самая длинная общая подпоследовательность (2 строки) — динамическое программирование и конкурирую...

Самая длинная общая подпоследовательность (2 строки) — динамическое программирование и конкурирую...

AVL Trees & Rotations (Self-Balancing Binary Search Trees)

AVL Trees & Rotations (Self-Balancing Binary Search Trees)

Наименьший общий предок между двумя узлами двоичного дерева (рекурсивный подход)

Наименьший общий предок между двумя узлами двоичного дерева (рекурсивный подход)

Catalan Numbers - Numberphile

Catalan Numbers - Numberphile

Maximum Sum Rectangle In A 2D Matrix - Kadane's Algorithm Applications (Dynamic Programming)

Maximum Sum Rectangle In A 2D Matrix - Kadane's Algorithm Applications (Dynamic Programming)

Total Occurrences Of K In A Sorted Array (Facebook Software Engineering Interview Question)

Total Occurrences Of K In A Sorted Array (Facebook Software Engineering Interview Question)

Почему НЕЛЬЗЯ использовать бесплатный ВПН? Разбор специалистом по кибербезопасности

Почему НЕЛЬЗЯ использовать бесплатный ВПН? Разбор специалистом по кибербезопасности

The Most Important Sequence: The Catalan Numbers

The Most Important Sequence: The Catalan Numbers

Миллиарды на ветер: Су-57 - главный авиационный миф России

Миллиарды на ветер: Су-57 - главный авиационный миф России

Все начнется с 30 декабря по 2 января: появилось важное предупреждение для всех украинцев

Все начнется с 30 декабря по 2 января: появилось важное предупреждение для всех украинцев

МАГНУС снова ударил по столу! Что случилось в партии против Эригаиси на чемпионате мира по блицу?

МАГНУС снова ударил по столу! Что случилось в партии против Эригаиси на чемпионате мира по блицу?

The Recursive Staircase - Top Down & Bottom Up Dynamic Programming (

The Recursive Staircase - Top Down & Bottom Up Dynamic Programming ("Climbing Stairs" on LeetCode)

ШЕНДЕРОВИЧ: Удар по дворцу Путина — был ли? Обратная связь от войны. Трамп морозит. Ответ Каспарову

ШЕНДЕРОВИЧ: Удар по дворцу Путина — был ли? Обратная связь от войны. Трамп морозит. Ответ Каспарову

Max Contiguous Subarray Sum - Cubic Time To Kadane's Algorithm (

Max Contiguous Subarray Sum - Cubic Time To Kadane's Algorithm ("Maximum Subarray" on LeetCode)

What are Catalan Numbers?

What are Catalan Numbers?

25 ПОПРАВОК, которые ТЫ ПРОПУСТИЛ: все изменения ПДД 2025, 130 новых штрафов, отмена продления прав

25 ПОПРАВОК, которые ТЫ ПРОПУСТИЛ: все изменения ПДД 2025, 130 новых штрафов, отмена продления прав

© 2025 dtub. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: [email protected]