题目描述 在各类实现堆的代码中,通常选择使用一维数组去模拟堆结构。如果在构建(堆)之后,将这个一维数组输出,可以观察到它们有一些有趣的性质。我们将小根堆(最小堆)和大根堆(最大堆)构建完成后所对应的数列,称为小根堆数列和大根堆数列。 堆是重要的数据结构之一,堆的类型有 2 种:最小堆、最大堆。对于最小堆,父结点的键值总是小于或等于任何一个子节点的键值;对于最大堆,父结点的键值总是大于或等于任何一个子节点的键值。通常堆的实现是用一维数组完成的。 给定一个长度为 n 的一维数组,请判断该一维数组是否实现了最大堆或者最小堆,如果该一维数组实现了最大堆,输出 Max heap;如果该一维数组实现了最小堆,输出 Min heap;如果该一维数组既没实现最大堆,也没实现最小堆,请输出 Not a heap。 输入格式 第一行是一个正整数 T,表示数据组数。 接下来有 T 组数据:每组数据包含 2 行,其中第 1 行为正整数 n,表示一维数组的长度;第 2 行为 n 个正整数(每个正整数之间用空格隔开),表示该一维数组。 输出格式 对于每一组数据,输出 Max heap、Min heap 或者 Not a heap,每个一行。 数据范围 T<= 20 2<= n <= 100000 数据保证不会有一维数组,即实现最大堆,又实现最小堆。 输入样例1 3 6 1 2 6 5 7 13 3 5 2 1 9 3 1 4 1 5 9 2 6 5 输出样例1 Min heap Max heap Not a heap