明明的随机数(随机数的去重以及排序)

Posted RookieLwh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了明明的随机数(随机数的去重以及排序)相关的知识,希望对你有一定的参考价值。

输入:
3
2
2
1
11
10
20
40
32
67
40
20
89
300
400
15
输出:
1
2
10
15
20
32
40
67
89
300
400
说明:
输入解释:
第一个数字是3,也即这个小样例的N=3,说明用计算机生成了3个1到1000之间的随机整数,接下来每行一个随机数字,共3行,也即这3个随机数字为:
2
1
1
所以第一个小样例的输出为:
1
2
第二个小样例的第一个数字为11,也即...(类似上面的解释)...
所以第二个小样例的输出为:
10
15
20
32
40
67
89
300
400
所以示例1包含了两个小样例!!
代码分析:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//选择这个集合是为了去重
HashSet hs = new HashSet<>();
//用于添加每次去重以及排完序后的值
ArrayList alist = new ArrayList<>();
while(sc.hasNext()){
int a = sc.nextInt();
for(int i=0;i<a;i++){
hs.add(sc.nextInt());
}
//新建一个数组,用于装hs中的值
int[] ar = new int[hs.size()];
Iterator it = hs.iterator();
for(int i=0;i<hs.size();i++){
ar[i] = it.next();
}
int num = ar.length;
//冒泡排序
for(int i=0;i<num;i++){
for(int j=0;j<num-i-1;j++){
if(ar[j]>ar[j+1]){
int temp = ar[j];
ar[j] = ar[j+1];
ar[j+1] = temp;
}
}
}
//讲数组中的值添加到alist中
for(int i=0;i<num;i++){
alist.add(ar[i]);
}
//重要是事情说三遍,每一次结束后,hs清空
hs.removeAll(hs);
}
for(int i=0;i<alist.size();i++){
System.out.println(alist.get(i));
}
}
}

以上是关于明明的随机数(随机数的去重以及排序)的主要内容,如果未能解决你的问题,请参考以下文章

数组的去重,以及随机一个验证码

华为机试练习明明的随机数

明明的随机数

明明的随机数

2006明明的随机数

明明的随机数