欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java编程题(1):n个数里出现次数大于等于n/2的数

程序员文章站 2022-06-22 11:42:18
题目描述:输入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();
    }
}