package algorithm;
/*
* 1.输入一个数,判断该数是否为素数?如果是输出yes,否则输出no
* 2.现在有一个整数数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。
*/
import java.io.*;
import java.util.*;
public class Day2 {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
//Sushu ss=new Sushu();
//ss.panduan();
Shuzu sz=new Shuzu();
int []arr={1,2,4,2,3,42,2,2,2,6,7,2,2,2,2,2};
sz.chazhao(arr);
}
}
class Sushu
{
int num;
public void panduan ()throws Exception
{
while(true)
{
System.out.println("请输入一个正整数(按0退出):");
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
this.num=Integer.parseInt(br.readLine());
if(num==0)
{
System.out.println("退出");
break;
}else if(num<0)
{
System.out.println("请重新输入");
continue;
}else{
this.sushu(this.num);
}
}
}
public void sushu(int num)
{
int a,b;
int i;
int j=0;
if(num==1)
{
System.out.println("No");
}
else
{
for(i=2;i<num;i++)
{
a=num%i;
b=num/i;
if(a==0&&b!=num&&b!=1)
{
System.out.println("No");
j=1;
break;
}
}
if(j==0)
{
System.out.println("Yes");
}
}
}
}
class Shuzu
{
public void chazhao(int arr[])
{
int j;
HashMap<Integer,Integer> hm=new HashMap<Integer,Integer>();
for (int i=0;i<arr.length;i++)
{
if (hm.containsKey(arr[i]))
{
j=hm.get(arr[i])+1;
if(j>arr.length/2)
{
System.out.println("结果是:"+arr[i]);
break;
}
hm.put(arr[i], j);
}else{
hm.put(arr[i],1);
}
}
}
}