название кисти Leetcode ноты (а)

654. Максимальная Binary Tree

Учитывая целочисленный массив, без дублей. Максимальное дерево здания на этом массиве определяется следующим образом:

  1. Корень максимальное число в массиве.
  2. Левое поддерево максимальное дерево строится из левой части подмассива, деленное на максимальное число.
  3. Правое поддерево максимального дерево строится из правой части подмассива разделенного на максимальном числе.

Построить максимальное дерево с помощью данного массива и вывода корневого узла этого дерева.

-------------------------------------------------- -------------------------------------------------- --------------

Дан массив целых чисел не повторяется. Максимальное дерево определяется на массиве установить следующее:

  1. Корень максимальное число массива.
  2. Левое поддерево делится на максимальное число суб-массива, полученного от самого большого дерева слева.
  3. Право поддерева является крупнейшей древовидной структурой частью права на подрешетки разделенного на максимальном числе.

Через заданного массива дерева конфигурации и максимального выхода корневого узла дерева.

-------------------------------------------------- -------------------------------------------------- --------------

Пример 1:

Входные данные : [3,2,1,6,0,5] 
Выход: возвращает узел дерева , представляющий корневой следующее дерево: 

      6 
    / \ 
   3 5 
    \ / 
     2 0    
       \ 
        1

 

Замечания:

  1. Размер данного массива будет находиться в диапазоне [1,1000].

Субъект не сложно, легко думать решения:

  1. Создать корневой узел, который является максимальным значением массива
  2. Максимальное значение левой половины массива, чтобы создать корневой узел слева, левый узел
  3. Максимальное значение правой части массива, чтобы создать правильный узел корневого узла, правый узел
  4. Рекурсивные выше операции
# Определение для бинарного узла дерева. 
# Класс TreeNode: 
# Защита __init __ (я, х): 
# self.val = х 
# self.left = None 
# self.right = None 

класс Решение: 
    Защита constructMaximumBinaryTree (самоповреждения, НУМС: Список [INT]) -> TreeNode: 
        если НУМС == []: 
            возвращение Отсутствует 
        индекс = nums.index (макс (НУМС)) 
        корень = TreeNode (макс (НУМС)) 
        root.left = self.constructMaximumBinaryTree (НУМС [: индекс]) 
        root.right = self.constructMaximumBinaryTree (НУМС [индекс + 1:]) 
        возвращение корень

  

1305. Все элементы в двух бинарных деревьев поиска

 

 

Учитывая два бинарных деревьев поиска  root1 и  root2.

Возвращает список , содержащий  все целые числа  от  обоих деревьев  сортируются в порядке возрастания.

 

Пример 1:

Входной сигнал: root1 = [2,1,4], root2 = [1,0,3] 
Выход: [0,1,1,2,3,4]

Пример 2:

Входной сигнал: root1 = [0, -10,10], root2 = [5,1,7,0,2] 
Выход: [-10,0,0,1,2,5,7,10]

Пример 3:

Входной сигнал: root1 = [], root2 = [5,1,7,0,2] 
Выход: [0,1,2,5,7]

Пример 4:

Входной сигнал: root1 = [0, -10,10], root2 = [] 
Выход: [-10,0,10]

Пример 5:

Входной сигнал: root1 = [1, NULL, 8], root2 = [8,1] 
Выход: [1,1,8,8]

 

Ограничения:

  • Каждое дерево имеет в большинстве  5000 узлов.
  • Значение каждого узла между  [-10^5, 10^5].

 

рекомендация

отwww.cnblogs.com/baiyunwanglai/p/12153983.html