Java编程题(1):n个数里出现次数大于等于n/2的数
程序员文章站
2022-03-10 14:38:49
题目描述:输入n个整数,输出出现次数大于等于数组长度一半的数。 输入描述:每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。 输出描述:输出出现次数大于等于n/2的数。 输入示例:3 9 3 2 5 6 7 3 2 3 3 3 输出示例:3 解法之一: ......
题目描述:输入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(); } }