查找数列中出现次数超过半数的主要成分
时间限制: 2 Sec 内存限制: 128 MB
题目描述
从金星探测器传回来一组测量数据,这是一个长度为N (1≤N≤1000000) 的整数数列,数列中的每个整数代表某一种化学成分 (相同的整数代表相同的化学成分)。 主要成分:指在包含的所有化学成分中比例超过一半(N/2的结果向下取整)的成分。现在要判断其是否有主要成分;如果有,其主要成分是哪一种?
例如: 当N=7,整数数列为1 2 3 2 2 1 2,其中成分2有4个,超过了7的一半 (7的一半向下取整为3) ,所以主要成分是2。 当N=6,整数数列为1 102 3131 1 102,其中的每一种成分都只有2个,未超过6的一半(6的一半为3),所以没有主要成分。
输入
第一行输入一个正整数N (1≤N≤1000000),表示数列长度 第二行输入N个整数 (1≤整数≤2000000000) ,每个整数表示一种化学成分,两个整数之间用一个空格隔开
输出
输出一行,如果存在主要成分,则输出代表主要成分的整数,否则,输出No
样例输入
7
1 2 3 2 2 1 2
样例输出
2 本题为编程题,提交代码并运行通过测试点后判分。
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析