题解 | 明明的随机数

明明的随机数

https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        if (in.hasNextInt()) {
            int n = in.nextInt();
        }
        // 注意 hasNext 和 hasNextLine 的区别
        boolean[] map = new boolean[500];
        // 一共500个数字,true表示输入过这个数(数组下标 + 1)
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int num = in.nextInt();
            if (map[num - 1] == false) {
                map[num - 1] = true;
            }
        }
        for (int i = 0; i < map.length; i++) {
            if (map[i]) {
                System.out.println(i + 1);
            }
        }
    }
}

将排序、去重简化为去重

思路:

题目提到所有待去重排序的数字为[1,500]的整数,数组下标[0,499]刚好可以对应。

可以用一个大小500的boolean数组 map 表示 下标+1 的数是否输入过;只需判断输入的数字对应的数组位置是否为false,如果false,则赋值为true;最后依次遍历数组,值为true则输出 下标+1

全部评论

相关推荐

牛客501015981号:前面志愿结束了,在大池子里面被其他部门捞了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务