Appearance
题目
已知一个整数序列 ,其中 ()。若存在 且 (),则称 为 的主元素。例如:
- A = (0, 5, 5, 3, 5, 7, 5, 5),则 5 为主元素;
- A = (0, 5, 5, 3, 5, 1, 5, 7),则 A 中没有主元素。
假设 A 中的 n 个元素保存在一个一维数组中,请设计一个尽可能高效的算法,找出 A 的主元素。若存在主元素,则输出该元素;否则输出 -1。要求:
(1) 给出算法的基本设计思想。
(2) 根据设计思想,采用 C、C++ 或 Java 语言描述算法,关键之处给出注释。
(3) 说明你所设计算法的时间复杂度和空间复杂度。