统计出现次数超过一半的数
给出一个含有 n(0<n≤1000) 个整数的数组,请找出其中出现次数超过一半的数。
数组中的数大于 − 50 且小于 50。
输出格式
如果存在这样的数,输出这个数;否则输出"no"。
输出时每行末尾的多余空格,不影响答案正确性
样例输入
3
1 2 2
样例输出
2
具体解答:
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
if(n>0 && n<=1000 ) {
int[] arr = new int[n];
for(int i=0;i<arr.length;i++) {
arr[i]=s.nextInt();
}
boolean b = false;
for(int j=-50;j<50;j++){
int k=0;
for(int i=0;i<arr.length;i++) {
if(arr[i]==j) {
k++;
}
}
if(k>(arr.length/2)){
System.out.println(arr[k-1]);//此处如果不是k-1的话会有个bug,
b=true;
}
}
if(b==false) {
System.out.println("no");
}
}
}
结果展示: