華爲研發工程師編程題——明明的隨機數

一、題目

明明想在學校中請一些同學一起做一項問卷調查,爲了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤1000),對於其中重複的數字,只保留一個,把其餘相同的數去掉,不同的數對應着不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成“去重”與“排序”的工作(同一個測試用例裏可能會有多組數據,希望大家能正確處理)。

Input Param

n 輸入隨機數的個數

inputArray n個隨機整數組成的數組

Return Value

OutputArray 輸出處理後的隨機整數

注:測試用例保證輸入參數的正確性,答題者無需驗證。測試用例不止一組。

輸入描述:

輸入多行,先輸入隨機整數的個數,再輸入相應個數的整數

輸出描述:

返回多行,處理後的結果

輸入例子1:

3
2
2
1
11
10
20
40
32
67
40
20
89
300
400
15

輸出例子1:

1
2
10
15
20
32
40
67
89
300
400

二、代碼實現

import java.util.Scanner;

public class RandomNum {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt();
            if (n <= 0 || n > 1000) {
                return;
            }
            int[] arr = new int[n];
            for (int i = 0; i < n; i++) {
                arr[i] = sc.nextInt();
            }
            int[] dArr = deduplication(arr);
            for (int i = 0; i < 1000; i++) {
                if (dArr[i] == 1) {
                    System.out.println(i);
                }
            }
        }
    }

    private static int[] deduplication(int[] arr) {
        int[] d = new int[1000];
        for (int i = 0; i < 1000; i++) {
            d[i] = 0;
        }
        for (int i = 0; i < arr.length; i++) {
            d[arr[i]] = 1;
        }
        return d;
    }
}
發佈了362 篇原創文章 · 獲贊 226 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章