Task 80_1. Двоичное дерево поиска

Task 80_1. Двоичное дерево поиска

UniLecs

Задача: вам дан массив неповторяющихся чисел. Необходимо определить, существует ли такое двоичное дерево поиска, в ктр эта последовательность является путем от корня к какому либо листу.

Входные данные: arr - массив неповторящихся чисел, размер массива от 1 до 10000. Значения массива - любые целые числа.

Вывод: true - если дерево, соответствующее заданному пути, существует. Иначе false.

Пример:

  1. arr = [8, 3, 6, 4]

Answer = True

  1. arr = [8, 4, 6, 3]

Answer = False

Реализация:

  1. @mrmeison, JS
@mrmeison, JS

https://jsfiddle.net/z9qd8g0y/


2. @tvolf, PHP

@tvolf, PHP

https://gist.github.com/tvolf/e21e5e90a05cc85cf651205730ffe3c1


3. @mikhail_01, Python

@mikhail_01, Python

https://gist.github.com/unilecs/a88d82837e2c9bcd810edbca7ccf94e1


4. @DekaBraZ, Python

@DekaBraZ, Python

https://gist.github.com/DekaBraZ/6f8a2d211a521a179eb1b82fadba50cb


5. @jinxonik, Python

@jinxonik, Python

https://gist.github.com/jin-x/a266caa8ad8fae56953dbc1bf9544934


6. @KoStard, Python

@KoStard, Python

https://gist.github.com/KoStard/9431c8130e17b38a5e7be4f9495f57c8


7. @Kostigan, Python

@Kostigan, Python


8. Напоследок, решение от Антона на Rust, обобщённое на любой тип, для которого определена операция сравнения

Антона, Rust

https://gist.github.com/AnthonyMikh/42d6978c00bf0dc193912ea1f82702f1


Тест:

https://play.rust-lang.org/?gist=6f2e1b4fa18217c6133690d7448fb9d2&version=nightly

Report Page