華為機試:明明的隨機數
阿新 • • 發佈:2021-06-12
描述
明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤1000),對於其中重複的數字,只保留一個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成“去重”與“排序”的工作(同一個測試用例裡可能會有多組資料(用於不同的調查),希望大家能正確處理)。
注:測試用例保證輸入引數的正確性,答題者無需驗證。測試用例不止一組。
當沒有新的輸入時,說明輸入結束。輸入描述:
注意:輸入可能有多組資料(用於不同的調查)。每組資料都包括多行,第一行先輸入隨機整數的個數N,接下來的N行再輸入相應個數的整數。具體格式請看下面的"示例"。
輸出描述:
返回多行,處理後的結果
示例
輸入: 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包含了兩個小樣例!!
我的程式碼
packagehuawei_jishi; import java.util.Scanner; /** * author:沒拉鍊的布加拉提 */ public class SortRandom { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] a = new int[1001]; int n = 0; while (sc.hasNext()) { n = sc.nextInt();for (int i = 0; i < n; i++) { a[sc.nextInt()] = 1; } for (int i = 0; i < 1001; i++) { if (a[i] == 1) { a[i] = 0; System.out.println(i); } } } sc.close(); } }