Бинарное дерево Максимальная разница меток

У меня есть вопрос ниже, но мне трудно разобраться в этом и реализовать его на PHP.

У вас есть двоичное дерево с N узлов (1 <= N <= 100000) пронумерованы от 0 в N — 1, каждый помечен каким-то целым числом.
Вы должны ответить Q (1 <= Q <= 75000) запросы, каждый из которых обозначен некоторым узлом (некоторое целое число от 0 до N — 1).

Ответом на каждый запрос является наибольшая разница между метками, которые вы найдете в пути от данного узла к корню дерева, который всегда будет узлом 0. N будет дано в первой строке ввода. N строк следуют за я-я строка описывает данные я-я узел дерева (первая строка описывает узел 0 и т. д.) с 3 целыми числами: метка, левый потомок, правый потомок. Отсутствие любого из детей будет обозначаться -1. Затем строка с целым числом Q, за которой следуют Q строк, каждая из которых представляет собой отдельный запрос, как описано выше.

Случай 1:

Для ввода предусмотрено следующее:

3

10 1 2

12 -1 -1

15 -1 -1

2

1

2

Выход программы будет:

2

5

Случай 2:

Для ввода предусмотрено следующее:

3

10 1 -1

15 2 -1

20 -1 -1

2

1

2

Выход программы будет:

5

10

Получение этой максимальной разницы, например, для случая 2,

Я бы сказал, что результат для запроса два будет 5, потому что из данных у моего двоичного дерева есть 10 (корень), затем узел 15 слева от корня, затем узел 20 слева от 15, так что 20-15 такое же, как 15-10, что делает их обоих 5. Не понимаю ли я что-то здесь или что-то … Любые идеи приветствуются.

0

Решение

Принимать во внимание все узлы между корень а также данный узел

Для ввода предусмотрено следующее:

3

10 1 -1

15 2 -1

20 -1 -1

1

2

Выход программы будет:

10

вы получаете путь 10-15-20 ты должен пойти с

max(10,15,20) - min(10,15,20) => 10

Для ввода предусмотрено следующее:

7

33 1 5

11 2 -1

27 3 6

87 4 -1

3 -1 -1

666 -1 -1

6666 -1 -1

1

4

Выход программы будет:

84

Вы получаете более длинную цепь 33-11-27-87-3 ты получаешь

max(33,11,27,87,3) - min(33,11,27,87,3) => 87-3 => 84
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector