题解 | #明明的随机数#
明明的随机数
https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
import java.util.Scanner; import java.util.Arrays; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int count = in.nextInt();//第一行是随机数的数目 int[] data = new int[count];//这个和直接赋值不一样,是直接new出来一个 //首先全部读入 for(int i =0;i<count;i++){ data[i]=in.nextInt(); } Arrays.sort(data); System.out.println(data[0]);//首先打印第一个数字 必然是不重复的 for(int i =1;i<count;i++){ if(data[i]!=data[i-1]){//这个就是后一个数字和前一个做比对 System.out.println(data[i]); } } } } }
方法二 使用treeset
import java.util.Scanner; import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 获取个数 int num = sc.nextInt(); // 创建 TreeSet 进行去重排序 TreeSet<Integer> set = new TreeSet<>();//这里使用了泛型 使得代码更加标准 // 输入 for (int i = 0; i < num; i++) { set.add(sc.nextInt()); } // 输出 Iterator<Integer> iterator = set.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } } }
方法三 使用bool
import java.util.Scanner; import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int num = scanner.nextInt(); int[] arr = new int[501];//这里是新建了一个501大小的数组 数组下标实际上是0-500(总共501个数) for (int i = 0; i < num; i++) { int n = scanner.nextInt(); arr[n] = 1; } for (int i = 1; i < arr.length; i++) { if (arr[i] == 1) { System.out.println(i); } } } } }