当前位置: 移动技术网 > IT编程>开发语言>Java > Java编程题(1):n个数里出现次数大于等于n/2的数

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

2018年10月16日  | 移动技术网IT编程  | 我要评论

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

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网