AlgoMooc
← 返回题库

P3603. 计算三叉搜索树的高度

中等通过率 63% · 提交 346 · 通过 219
DFS模拟

小慕正在设计一种特殊的,规则如下: 每个节点都存放一个数值。当插入一个新数时,从根节点开始向下查找,直到找到一个合适的空节点进行插入。 查找规则为: 1. 如果新数小于当前节点的数减去 500,则插入到当前节点的左子树; 2. 如果新数大于当前节点的数加上 500,则插入到当前节点的右子树; 3. 否则,插入到当前节点的中子树。 现在小慕有一系列数,请你按照上述规则,按顺序将这些数依次插入树中,构建出一棵三叉搜索树,最后输出这棵树的高度。

提示:带虚线的词点一下有通俗解释。

输入描述

第一行为一个数 N,表示有 N 个数,1 <= N <= 10000 第二行为 N 个空格分隔的整数,每个数的范围为[1, 10000]

输出描述

输出树的高度(根节点的高度为 1)

示例

示例 1

输入

9
5000 2000 5000 8000 1800 7500 4500 1400 8100

输出

4

示例 2

输入

3
5000 4000 3000

输出

3

示例 3

输入

5
5000 2000 5000 8000 1800

输出

3

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「计算三叉搜索树的高度」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。