NewCoder:n个数里出现次数大于等于n2的数

    xiaoxiao2025-06-11  23

    文章目录

    题目来源题目描述输入描述:输出描述: 解题思路-`String.split(String str)`和`Integer.valueOf(String str)`的使用实现代码

    题目来源

    https://www.nowcoder.com/questionTerminal/eac8c671a0c345b38aa0c07aba40097b

    题目描述

    输入n个整数,输出出现次数大于等于数组长度一半的数。

    输入描述:

    每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。

    输出描述:

    输出出现次数大于等于n/2的数。

    示例1 输入 3 9 3 2 5 6 7 3 2 3 3 3 输出 3

    解题思路-String.split(String str)和Integer.valueOf(String str)的使用

    用String类型的变量接收输入的一行。用String.split(" ")空格作为分割符,达到去空格目的。设一个int[]来存放要判断的所有数找出出现次数达到n/2的数并返回。

    实现代码

    import java.util.*; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); //1.取得字符串 String[] temp = str.split(" "); //2.以空格拆分,去空格操作 int[] array = new int[temp.length]; //3.String[] ->int[] int n = array.length; for (int i = 0; i < n; i++) { array[i] = Integer.valueOf(temp[i]); //3.1取到所有数据 } int num = array[0]; //4.从第一个数开始找 int count = 0; for (int j = 1; j < n; j++) { if (array[j] == num) { //4.1遍历数组的找相同值得个数 count++; } if (count >= n/2) { //4.2.1同时判断当前值得个数有没有超过半数,超过则直接输出 break; } else { //4.2.2否则num后移 num = array[j]; } } System.out.println(num); } }
    最新回复(0)