题目描述:输入n个整数,输出出现次数大于等于数组长度一半的数。
输入描述:每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。
输出描述:输出出现次数大于等于n/2的数。
输入示例:3 9 3 2 5 6 7 3 2 3 3 3
输出示例:3
解法之一:
/*输入n个整数,输出出现次数大于等于数组长度一半的数。*/ package practice_completed; import java.util.*; public class Test { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = ""; ArrayList<Integer> a = new ArrayList<Integer>(); str = in.nextLine();//以字符串形式接收输入的所有数字 String[] c = str.split(" ");//按' '分割每一个数字,得到新的只含有数字的字符串数组 for(int i = 0; i < c.length; i++){//将字符串数组中的每个数字字符转换成整型 // String temp = String.valueOf(c[i]); a.add(Integer.parseInt(c[i]));//将整数赋值给数组列表 } for(int i = 0; i < a.size(); i++){//遍历数组列表,查找符合条件的数字 int flag = 0; for(int j = 0; j < a.size(); j++){ if(a.get(i) == a.get(j)){ flag++; } } if(flag >= a.size() / 2){//若flag大于等于数组长度的一半,输出当前的数字 System.out.println(a.get(i)); break; } } in.close(); } }