题解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手撕代码#
华为OD笔试库讲解,JAVA版 文章被收录于专栏

随便发发而已

全部评论

相关推荐

威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务