题解HJ3 | #明明的随机数#
明明的随机数
https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int a =in.nextInt(); int[] myarray=new int[a]; for(int i=0;i<a;i++){ myarray[i]=in.nextInt(); } //排序 for(int num=0;num<a-1;num++){ for(int i=0;i<a-1-num;i++){ if(myarray[i]>myarray[i+1]){ int j=myarray[i]; myarray[i]=myarray[i+1]; myarray[i+1]=j; } } } for(int i=0;i<myarray.length;i++){ if(i==0||myarray[i]!=myarray[i-1]){ System.out.println(myarray[i]); } } } }
先定义一个int型去接受数字个数,然后定义一个和个数相等的数组,nextInt获取输入的整数型
int a =in.nextInt();
int[] myarray=new int[a];//这个[a]表示的是数组的大小
之后用for循环,把每一个整数都放到数组中,依然是从0开始
for(int i=0;i<a;i++){
myarray[i]=in.nextInt();
}
然后先冒泡排序,用俩个for循环,把数组中较大的数字放到右边,重复a次,这样就完成了排序
for(int num=0;num<a-1;num++){
for(int i=0;i<a-1-num;i++){
if(myarray[i]>myarray[i+1]){
int j=myarray[i];
myarray[i]=myarray[i+1];
myarray[i+1]=j;
}
}
}
最后是输出 ,因为完成了排序,所以直接输出就行,遇到第i和第i+1相同就不输出,不同再输出,第一个单独输出
for(int i=0;i<myarray.length;i++){
if(i==0||myarray[i]!=myarray[i-1]){
System.out.println(myarray[i]);
}
}
这样的方式其实有点偷懒,没有得到最后的数组,如果要完整的得到一个整理好的数组,得先获得数组大小,可以把 System.out.println(myarray[i]);改成cout计数,计数得到数组大小,定义好数组,再用刚刚的方式将里面的数字依次输入进新数组
其实还可以使用java自带的一些库,比如set,这个后面遇到要用set的时候再讲解
#华为od手撕代码#随便发发而已