题目描述
给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下、从左到右的顺序依次是 A1,A2,…,An ,如下图所示:
现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。
注:根的深度是 1。
输入描述
第一行包含一个整数 N(1≤N≤10^5)N(1≤N≤10 ^5)
第二行包含 N 个整数 A1, A2, ··· An (−10^5≤ Ai ≤10^5)
输出描述
输出一个整数代表答案。
示例
输入
7
1 6 5 4 3 2 1
输出
2
分析
重点是知道每个节点所处的深度是多少,将所有深度相同的节点的权值加起来,进行取最大值即可。
那么如何求得节点所处的深度呢?
根据分析(学过二叉树的话应该也有讲)我们可以知道对于完全二叉树来说,如果有n个节点,那么他的最小深度是:log2(n+1) 于是,利用这个公式即可让这道