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

题目描述:输入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();
    }
}

 

posted @ 2018-10-15 20:41  yjry-th  阅读(505)  评论(0编辑  收藏  举报