题解 | #明明的随机数#
明明的随机数
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);
}
}
}
}
}
查看9道真题和解析
