思路:
(1)首先是n个数,如何判断准确个数,我这里采用String接收然后变为字符数组的方式,要知道的是变为字符数组时,数组里还存放了n个空格,所以输入的数字个数=字符数组.length/2;
(2)知道输入数字的个数之后,new一个新数组去只存放数字(具体存放过程见下方代码),当然,这里数字是按照字符的格式存放的;
(3)经过上一步,也就准备好了我们所需要的数组,接下来就是遍历,循环遍历,用size计数,最后判断是否大于n/2即可,输出。这里要注意一个特殊情况,当n个数均衡被两个数字分配个数时,结果应该是两个数字,比如, 输入1 1 1 2 2 2,应当输出1 2,这里是比较容易忽略的一点,没有想到这一点的话,通过率就只有1/3了哦。为了解决这个问题,就是在判断完size之后,不要break就可以了,这也是我出现了的一个问题,还好想了一下之后明白了。嘿嘿。
over,如果上面有什么专业术语不对的话,欢迎大家批评指正。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
/*将一行数字变成字符串,再变成字符数组*/
char[] array=in.nextLine().toCharArray();
/*得到输入的数字的个数*/
int count=array.length/2;
/*创建一个数组用来接收除空格以外的其他字符*/
char[] arr=new char[count];
/*将字符放入数组中*/
int j=0;
for (int i = 0; i <array.length-1; i++) {
if (array[i] == ' ') {