题解 | #明明的随机数#

明明的随机数

http://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0

使用map put值覆盖,得到一个不重复的数组

import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    while (sc.hasNext()){
        int total = sc.nextInt();
        int arr[] = new int[total];
        for (int i = 0; i <total ; i++) {
            arr[i] = sc.nextInt();
        }
        int[] ints = replaceExixt(arr);
        int[] sort = quickSort(ints, 0, ints.length - 1);
        for (Integer value:sort){
            System.out.println(value);
        }

    }
}


public static int[] replaceExixt(int arr[]){
    Map<Integer,Integer> map = new HashMap();
    for (int i = 0; i < arr.length; i++) {
        map.put(arr[i],arr[i]);
    }
    int temp[] = new int[map.size()];
    int i =0;
    for (Integer key:map.keySet()) {
           temp[i++] = key;
    }

    return temp;
}

public static int[] quickSort(int arr[],int start,int end){
    if (start<end){
        int low =start;
        int stard = arr[start];
        int high = end;
        while (low<high){
            while (low<high&&stard<=arr[high]){
                high--;
            }
            arr[low] = arr[high];
            while (low<high&&arr[low]<=stard){
                low++;
            }
            arr[high] = arr[low];
        }
        arr[low] = stard;
        quickSort(arr,start,low);
        quickSort(arr,low+1,end);


    }
    return arr;
}

}

全部评论

相关推荐

09-25 10:34
东北大学 Java
多面手的小八想要自然醒:所以读这么多年到头来成为时代车轮底下的一粒尘
点赞 评论 收藏
分享
10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务