Task 80_1. Двоичное дерево поиска
UniLecsЗадача: вам дан массив неповторяющихся чисел. Необходимо определить, существует ли такое двоичное дерево поиска, в ктр эта последовательность является путем от корня к какому либо листу.
Входные данные: arr - массив неповторящихся чисел, размер массива от 1 до 10000. Значения массива - любые целые числа.
Вывод: true - если дерево, соответствующее заданному пути, существует. Иначе false.
Пример:
- arr = [8, 3, 6, 4]
Answer = True
- arr = [8, 4, 6, 3]
Answer = False
Реализация:
- @mrmeison, JS
https://jsfiddle.net/z9qd8g0y/
2. @tvolf, PHP
https://gist.github.com/tvolf/e21e5e90a05cc85cf651205730ffe3c1
3. @mikhail_01, Python
https://gist.github.com/unilecs/a88d82837e2c9bcd810edbca7ccf94e1
4. @DekaBraZ, Python
https://gist.github.com/DekaBraZ/6f8a2d211a521a179eb1b82fadba50cb
5. @jinxonik, Python
https://gist.github.com/jin-x/a266caa8ad8fae56953dbc1bf9544934
6. @KoStard, Python
https://gist.github.com/KoStard/9431c8130e17b38a5e7be4f9495f57c8
7. @Kostigan, Python
8. Напоследок, решение от Антона на Rust, обобщённое на любой тип, для которого определена операция сравнения
https://gist.github.com/AnthonyMikh/42d6978c00bf0dc193912ea1f82702f1
Тест:
https://play.rust-lang.org/?gist=6f2e1b4fa18217c6133690d7448fb9d2&version=nightly