牛客網華爲機試【明明的隨機數(java)】

題目描述

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

Input Param

n 輸入隨機數的個數

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

Return Value

OutputArray 輸出處理後的隨機整數

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

題目分析

這道題,本意是放在數組中進行操作的,可是一看到去重排序,腦子裏就只剩下 TreeSet 了。
另外,在做這道題的時候,進入了一個誤區,其他方面都很好,一次性就寫出了核心代碼,就是自己少看了幾行字:測試用例不止一組
因此,在測試幾次不通過的時候,最終還是在外圈加入了一個 while 循環。

還有就是數組越界的問題,在數組中肯定是存在的,可我這是 TreeSet ,就簡單的加了一個判斷。

java 代碼

package org.feng.nowcoder;

/**
 * Created by Feng on 2020/2/13 13:34
 * CurrentProject's name is java8
 * 明明的隨機數
 * @see java.util.TreeSet 去重和排序
 * @author Feng
 */
public class Main {
    public static void main(String[] args){
        java.util.Scanner input = new java.util.Scanner(System.in);

        while(input.hasNext()){
            // 輸入 N
            int number = input.nextInt();
            if(number > 1000){
                return;
            }
            // 存儲每組測試數據到 TreeSet 中
            java.util.TreeSet<Integer> treeSet = new java.util.TreeSet<>();
            for(int i = 0; i < number; i++){
                treeSet.add(input.nextInt());
            }

            // 輸出數據到控制檯
            treeSet.forEach(System.out::println);
        }
    }
}

結果

在這裏插入圖片描述

發佈了131 篇原創文章 · 獲贊 121 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章